Hi, in this message http://lists.nongnu.org/archive/html/chicken-users/2011-09/msg00292.html I sent out a strange bug. Sorry for that.
The child-registering fork() should be: (define (save-fork) (let* ((ie (##sys#fudge 14)) (pid (begin (chicken-disable-interrupts!) ((foreign-lambda int "fork"))))) (case pid ((0) (set! processes-running (make-hash-table fx= number-hash))) ((-1) (if ie (chicken-simple-enable-interrupts!))) (else (hash-table-set! processes-running pid (list pid)) (if ie (chicken-simple-enable-interrupts!)))) pid)) The way I miss-cut&pasted it together would switch off interrupt handling completely. (Which I did not notice, since those changes in signal handling would work even with interrupt disabled. Actually this make me wonder if it would be possible to actually remove it from the source. Wait - I'm not proposing that hereby. /Jörg _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users