]> git.sesse.net Git - jam/commitdiff
Set a much smaller stack size for the worker threads, so we won't easily
authorsgunderson@bigfoot.com <>
Wed, 31 Jan 2007 16:43:12 +0000 (17:43 +0100)
committersgunderson@bigfoot.com <>
Wed, 31 Jan 2007 16:43:12 +0000 (17:43 +0100)
run out of stack. Also add a FIXME.

jam.c

diff --git a/jam.c b/jam.c
index 8de0a4d65cad45253afcb479dbf95f316fa8b843..b4330f7d4e20cb8d50106b91bba6719f5410e370 100644 (file)
--- a/jam.c
+++ b/jam.c
@@ -79,6 +79,7 @@ int main()
                struct sockaddr_in addr;
                socklen_t addr_len = sizeof(addr);
                pthread_t thread;
+               pthread_attr_t attr;
 
                int sock = accept(server_sock, (struct sockaddr *)&addr, &addr_len);
                if (sock == -1) {
@@ -86,7 +87,18 @@ int main()
                        exit(1);
                }
 
-               if (pthread_create(&thread, NULL, receiver_worker, (void *)sock) != 0) {
+               // FIXME: these do not really set errno
+               if (pthread_attr_init(&attr) != 0) {
+                       perror("pthread_attr_init()");
+                       exit(1);
+               }
+
+               if (pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + 65536 + 0x4000) != 0) {
+                       perror("pthread_attr_setstacksize");
+                       exit(1);
+               }
+
+               if (pthread_create(&thread, &attr, receiver_worker, (void *)sock) != 0) {
                        perror("pthread_create()");
                        exit(1);
                }