On Mon, May 19, 2008 at 11:24 PM, Lui Fungsin <[EMAIL PROTECTED]> wrote: > So I confirmed that the sigpipe hanging my chicken program stems from > the same problem - that the signal handler is not re entrant. > > If I handle sigpipe, linux will send the signal when the pipe is > broken. Moreover, subsequent write to the same file no. will generate > another sigpipe. > > If the signal sent are within a very short interval, it will hang the > chicken program (as demonstrated in my program below, which handle > sigint) >
Normally, setting a signal-handler will install code that changes the current nursery pointer to trigger a minor GC at the next check. During the time window before the handler is invoked it appears to be possible that another signal triggers another interrupt, leaving the various saved heap-pointers in an inconsistent state. I'll look into this, but it may take a while. Thanks for pointing this out so thoroughly. cheers, felix _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
