123456789101112131415161718192021222324252627282930313233343536 |
- /*
- g++ thread-join.cpp ../../objs/st/libst.a -g -O0 -o thread-join && ./thread-join
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include "../../objs/st/st.h"
- void* pfn(void* arg) {
- printf("pid=%d, coroutine is ok\n", ::getpid());
- return NULL;
- }
- int main(int argc, char** argv) {
- st_init();
- printf("pid=%d, create coroutine #1\n", ::getpid());
- st_thread_t thread = st_thread_create(pfn, NULL, 1, 0);
- st_thread_join(thread, NULL);
- st_usleep(100 * 1000);
- printf("pid=%d, create coroutine #2\n", ::getpid());
- thread = st_thread_create(pfn, NULL, 1, 0);
- st_thread_join(thread, NULL);
- st_usleep(100 * 1000);
- printf("pid=%d, create coroutine #3\n", ::getpid());
- thread = st_thread_create(pfn, NULL, 1, 0);
- st_thread_join(thread, NULL);
- printf("done\n");
- st_thread_exit(NULL);
- return 0;
- }
|