Ejemplo n.º 1
0
int main( int argc, char* argv[] )
{
    int thread_id[NO_OF_THREADS_TO_CREATE];
    int status;
    int i;

    test_name = "multi-tid";

    msg ("begin");

    for( i = 0; i < NO_OF_THREADS_TO_CREATE; ++i )
    {
        thread_id[i] = uthread_create( child_thread, &thread_id[i] );
        if( -1 == thread_id )
        {
            fail( "Test creation failed. Test fail" );
        }
    }

    for( i = 1; i < NO_OF_THREADS_TO_CREATE; ++i )
    {
        if( thread_id[i] != thread_id[i-1] + 1 )
        {
            fail( "TID's should be consecutive" );
        }
    }

    uthread_joinall();

    msg( "end" );


    return 0;
}
Ejemplo n.º 2
0
/*
 * Create N threads which spawn M threads (default 1x1)
 */
int main(int argc, char *argv[])
{
	int n, m;
	int rc;
	void *prev_tid = NULL, *last_tid = NULL;

	if (argc < 3)
		n = m = 1;
	else {
		n = atoi(argv[1]);
		m = atoi(argv[2]);
	}

	for (int i = 0; i < n; ++i) {
		last_tid = uthread_create(def_attrs, fun_with_threads, &m);

		if (last_tid) {
			printf("created thread: %p\n", last_tid);
			prev_tid = last_tid;
		} else {
			printf("out of memory, exiting\n");
			break;
		}
	}

	rc = uthread_joinall();
	printf("join returned: %d\n", rc);

	return EXIT_SUCCESS;
}
Ejemplo n.º 3
0
int main(int argc, char *argv[])
{
	int fd, rv;
	void *last_tid;
	char buf[4096];

	printf("main tid: %p\n", uthread_gettid());
	struct uthread_attr a = UT_DEF_ATTR;

	for (int i = 5; i > 0; --i) {
		last_tid = uthread_create(a, fun_with_threads, &i);
		printf("queued thread: %p\n", last_tid);
	}

	fd = open(argv[1], O_RDONLY);
	rv = async_read(fd, buf, 4096);
	printf("async_read (%d): %s\n", rv, buf);

	rv = uthread_joinall();
	printf("join returned: %d\n", rv);

	return EXIT_SUCCESS;
}