Matt Joiner avatar 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;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.