Commits

Matt Joiner committed c5411c1

thread-limit.c: Accept stack size on the command line.

Comments (0)

Files changed (1)

     }
 }
 
-int main()
+int main(int argc, char *argv[])
 {
-    for (int i = 0;;) {
+    pthread_attr_t attr[1];
+    pthread_attr_init(attr);
+    if (argc == 2) {
+        size_t stacksize;
+        if (1 != sscanf(argv[1], "%zu", &stacksize)) {
+            error(2, 0, "invalid argument");
+        }        int errnum;
+        if (errnum = pthread_attr_setstacksize(attr, stacksize)) {
+            error(1, errnum, "pthread_attr_setstacksize");
+        }
+    } else if (argc > 2) {
+        return 2;
+    }
+    for (int i = 1;;) {
         pthread_t thread;
-        int d = pthread_create(&thread, NULL, thread_routine, (void *)i + 1);
+        int d = pthread_create(&thread, attr, thread_routine, (void *)i);
         switch (d) {
         case 0:
             ++i;