C   27

create c

Guest on 24th January 2023 01:59:10 PM


  1. #include <stdio.h>
  2. #include <pthread.h>
  3.  
  4. #define THREADS 500000
  5.  
  6. void *
  7. worker(void *arg)
  8. {
  9.         sleep(5000);
  10.         pthread_exit(NULL);
  11. }
  12.  
  13. int
  14. main(void)
  15. {
  16.         int i, error;
  17.         pthread_t *thr;
  18.         pthread_attr_t attr;
  19.  
  20.         if ((thr = malloc(THREADS * sizeof(pthread_t))) == NULL)
  21.                 err(-1, "malloc");
  22.  
  23.         pthread_attr_init(&attr);
  24.  
  25.         if ((error = pthread_attr_setstacksize(&attr, 2048)) != 0)
  26.                 errc(-1, error, "setstacksize");
  27.  
  28.         for (i = 0; i < THREADS; i++) {
  29.                 if (pthread_create(&thr[i], NULL, worker, NULL) != 0)
  30.                         err(-1, "pthread_create[%d]", i);
  31.         }
  32.  
  33.         printf("done creating\n");
  34.  
  35.         for (i = 0; i < THREADS; i++) {
  36.                 if (pthread_join(thr[i], NULL) != 0)
  37.                         err(-1, "pthread_join[%d]", i);
  38.         }
  39.  
  40.         return (0);
  41. }

Raw Paste


Login or Register to edit or fork this paste. It's free.

">