Browse Source

feat: thread pool detach function

master
Dnomd343 1 year ago
parent
commit
5ac8f2cf70
  1. 14
      main.c
  2. 23
      tiny_pool.c

14
main.c

@ -42,14 +42,18 @@ int main() {
tiny_pool_submit(pool, demo_fun, (void*)&dat[7]);
tiny_pool_submit(pool, demo_fun, (void*)&dat[8]);
printf("+ main: pool joining\n");
tiny_pool_join(pool);
printf("+ main: pool join complete\n");
// printf("+ main: pool joining\n");
// tiny_pool_join(pool);
// printf("+ main: pool join complete\n");
// printf("pool try exit\n");
// tiny_pool_kill(pool);
printf("+ main: pool detach\n");
tiny_pool_detach(pool);
printf("+ main: pool detach complete\n");
sleep(20);
// TODO: tiny pool destroy
// printf("pool try exit\n");
// tiny_pool_kill(pool);
// sleep(10);

23
tiny_pool.c

@ -244,3 +244,26 @@ bool tiny_pool_join(pool_t *pool) {
return true;
}
void* run_pool_join(void *pool) {
printf("run pool join from detach\n");
tiny_pool_join((pool_t*)pool);
printf("pool join complete\n");
pthread_exit(NULL);
}
void tiny_pool_detach(pool_t *pool) {
pthread_t tid;
printf("run pool detach\n");
pthread_create(&tid, NULL, run_pool_join, (void*)pool);
pthread_detach(tid);
}

Loading…
Cancel
Save