A forking.c => forking.c +17 -0
@@ 0,0 1,17 @@
+#include <u.h>
+#include <libc.h>
+
+void
+main(void)
+{
+ QLock lock;
+
+ if(fork() == 0){
+ qlock(&lock);
+ exits(nil);
+ }else{
+ waitpid();
+ qlock(&lock);
+ exits(nil);
+ }
+}
M mkfile => mkfile +3 -1
@@ 6,7 6,9 @@ bins=\
spiral\
queuesrv\
pres\
- ufx2font
+ ufx2font\
+ forking\
+ qlock
all:VQ: `{echo $O.^$bins}
A qlock.c => qlock.c +23 -0
@@ 0,0 1,23 @@
+#include <u.h>
+#include <libc.h>
+
+QLock l;
+
+int
+on_note(void *, char *ty)
+{
+ fprint(2, "%d: note: %s\n", getpid(), ty);
+ return 0;
+}
+
+void
+main(int argc, char **argv)
+{
+ int pid;
+
+ atnotify(on_note, 1);
+
+ fork();
+
+ sleep(10000);
+}