# HG changeset patch # User Francisco J Ballesteros # Date 1330077756 -3600 # Node ID 1386cdce4771d4e0666ac42d115068e0c30ddda4 # Parent e73da93bb1db6c161c6c5b71845f247097f63666 worker: library improvements be able to use threads or procs and use mainstacksize R=nixiedev, quanstro CC=nix-dev http://codereview.appspot.com/5700053 diff -r e73da93bb1db -r 1386cdce4771 sys/man/2/worker --- a/sys/man/2/worker Wed Feb 22 16:10:20 2012 +0100 +++ b/sys/man/2/worker Fri Feb 24 11:02:36 2012 +0100 @@ -49,7 +49,8 @@ .I threadcreate (2). Initialize with the address of .I proccreate -to create worker processes instead of threads. +to create worker processes instead of threads. The stack size is +.I mainstacksize . .SH SOURCE .B /sys/src/libworker .SH BUGS diff -r e73da93bb1db -r 1386cdce4771 sys/src/libworker/worker.c --- a/sys/src/libworker/worker.c Wed Feb 22 16:10:20 2012 +0100 +++ b/sys/src/libworker/worker.c Fri Feb 24 11:02:36 2012 +0100 @@ -6,11 +6,6 @@ typedef struct Work Work; typedef struct Workproc Workproc; -enum -{ - Stack = 32 * 1024 -}; - struct Work { Worker work; @@ -94,7 +89,7 @@ wl->wc = chancreate(sizeof(ulong), 0); if(wl->wc == nil) sysfatal("chancreate"); - if(workerthreadcreate(workproc, wl, Stack) < 0) + if(workerthreadcreate(workproc, wl, mainstacksize) < 0) sysfatal("threadcreate"); wl->id = recvul(wl->wc); } @@ -124,7 +119,7 @@ workerdonec = chancreate(sizeof(Workproc*), 0); if(workerc == nil || workeridc == nil || workerdonec == nil) sysfatal("chancreate"); - if(threadcreate(ctlproc, nil, Stack) < 0) + if(workerthreadcreate(ctlproc, nil, mainstacksize) < 0) sysfatal("threadcreate"); }