On Fri, 25 Apr 2003, Joerg Wunsch wrote:
I didn't test that yet, but i think that should work. If SA_NOCLDWAIT is set (in a call for SIGCHLD), sa_handler ought to be ignored anyway.
I'm note sure whether that's related (in it's, unfortunately, beyond my knowledge of threads and/or Wine to debug this), but...
With current CVS sources of Wine, every single Windows program I try fails with the following error:
assertion "libc_sigaction" failed: file "../../scheduler/pthread.c", line 661
which stems from the following snippet of code:
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact) { if (!libc_sigaction) { libc_sigaction = dlsym( RTLD_NEXT, "sigaction" ); assert( libc_sigaction ); } return libc_sigaction(signum, act, oldact); }
The backtrace looks as follows:
(gdb) bt #0 0x5c06cbac in kill () from /usr/lib/libc.so.4 #1 0x5c0ae152 in abort () from /usr/lib/libc.so.4 #2 0x5c08a14f in __assert () from /usr/lib/libc.so.4 #3 0x5c16c404 in sigaction (signum=12, act=0xbfbfdce0, oldact=0xbfbfdcc8) at ../../scheduler/pthread.c:661 #4 0x5c074f09 in getcwd () from /usr/lib/libc.so.4 #5 0x5c167400 in CLIENT_InitServer () at ../../scheduler/client.c:618 #6 0x5c1685ab in process_init (argv=0xbfbff2e4) at ../../scheduler/process.c:414 #7 0x5c1689e1 in __wine_process_init (argc=2, argv=0xbfbff2e4) at ../../scheduler/process.c:585 #8 0x5c02130b in wine_init (argc=2, argv=0xbfbff2e4, error=0xbfbfee90 "", error_size=1024) at loader.c:429 #9 0x3c000569 in main (argc=2, argv=0xbfbff2e4) at main.c:32 #10 0x3c0004ae in _start ()
Gerald