You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
62 lines
1.6 KiB
2 years ago
|
#include <stdio.h>
|
||
2 years ago
|
#include <unistd.h>
|
||
2 years ago
|
#include "tiny_pool.h"
|
||
|
|
||
2 years ago
|
void demo_fun(void *i) {
|
||
2 years ago
|
int num = *(int*)i;
|
||
2 years ago
|
printf(" task %d start\n", num);
|
||
2 years ago
|
for (int t = 0; t < num; ++t) {
|
||
|
sleep(1);
|
||
2 years ago
|
printf(" task %d running...\n", num);
|
||
2 years ago
|
}
|
||
2 years ago
|
printf(" task %d complete\n", num);
|
||
2 years ago
|
}
|
||
|
|
||
|
int main() {
|
||
|
|
||
2 years ago
|
// pool_t *pool = tiny_pool_create(2);
|
||
|
pool_t *pool = tiny_pool_create(4);
|
||
2 years ago
|
|
||
2 years ago
|
int dat[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
|
||
2 years ago
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[0]);
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[1]);
|
||
|
|
||
2 years ago
|
printf("+ main: pool booting\n");
|
||
2 years ago
|
tiny_pool_boot(pool);
|
||
2 years ago
|
printf("+ main: pool boot complete\n");
|
||
2 years ago
|
|
||
2 years ago
|
printf("+ main: sleep 5s\n");
|
||
2 years ago
|
sleep(5);
|
||
2 years ago
|
printf("+ main: wake up\n");
|
||
2 years ago
|
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[2]);
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[3]);
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[4]);
|
||
2 years ago
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[5]);
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[6]);
|
||
2 years ago
|
|
||
2 years ago
|
printf("+ main: sleep 8s\n");
|
||
2 years ago
|
sleep(6);
|
||
2 years ago
|
printf("+ main: wake up\n");
|
||
2 years ago
|
|
||
2 years ago
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[7]);
|
||
|
tiny_pool_submit(pool, demo_fun, (void*)&dat[8]);
|
||
|
|
||
2 years ago
|
// printf("+ main: pool joining\n");
|
||
|
// tiny_pool_join(pool);
|
||
|
// printf("+ main: pool join complete\n");
|
||
2 years ago
|
|
||
2 years ago
|
// printf("+ main: pool detach\n");
|
||
|
// tiny_pool_detach(pool);
|
||
|
// printf("+ main: pool detach complete\n");
|
||
|
// sleep(20);
|
||
|
|
||
|
printf("+ main: pool kill\n");
|
||
|
tiny_pool_kill(pool);
|
||
|
printf("+ main: pool kill complete\n");
|
||
2 years ago
|
|
||
2 years ago
|
printf("+ main exit\n");
|
||
2 years ago
|
|
||
2 years ago
|
return 0;
|
||
|
}
|