Example #1
0
int main()
{
	wfg_t wfg;

	wfg_init(&wfg);
	wfg_print_graph(&wfg);
	printf("-\n");

	wfg_add_wait_edge(&wfg, 2, 1);
	wfg_print_graph(&wfg);
	printf("-\n");
	/* 2 -> r1 */

	wfg_add_hold_edge(&wfg, 2, 1);
	wfg_print_graph(&wfg);
	printf("-\n");
	/* r1 -> 2 */

	wfg_add_wait_edge(&wfg, 1, 2);
	wfg_print_graph(&wfg);
	printf("-\n");
	/* r1 -> 2, 1 -> r2 */

	wfg_add_hold_edge(&wfg, 1, 2);
	wfg_print_graph(&wfg);
	printf("-\n");
	/* r1 -> 2, r2 -> 1 */
        

	wfg_add_wait_edge(&wfg, 2, 2);
	wfg_print_graph(&wfg);
	printf("-\n");
	/* r1 -> 2, r2 -> 1, 2 -> r2 */
	/* r1 -> 2 -> r2 -> 1 */

	wfg_add_wait_edge(&wfg, 1, 1);
	wfg_print_graph(&wfg);
	unsigned int *cycle;
	int size = wfg_get_cycle(&wfg,&cycle);
	int i;
	for(i=0;i<size;i++)
	{
		printf("%u->",cycle[i]);
	}
	printf("\n");
	printf("-\n");
	free(cycle);
	/* r1 -> 2 -> r2 -> 1 -> r1 */

	wfg_remove_edge(&wfg, 1, 1);
	wfg_print_graph(&wfg);
	size = wfg_get_cycle(&wfg,&cycle);
	printf("size: %d\n",size);
	printf("-\n");

	wfg_destroy(&wfg);

	return 0;
}
Example #2
0
/**
 * Frees all memory used by libdrm.
 *
 * This function will be called last, after all mutexes have been destroyed.
 */
void drm_cleanup()
{
	wfg_destroy(lockGraph);
	free(lockGraph);


	return;
}