[JDEV] Re: [Mac-dev] Server crashing in pth_sched.c (on Mac OS X) : help needed

Max Horn max at quendi.de
Fri May 18 10:43:31 CDT 2001


At 8:22 Uhr -0700 18.05.2001, Jabber Developer wrote:
>Hi
>
>I am still trying to have jabber running correctly on Apple Mac OS X.
>I turned on the debug mode in the pth_library and added some extra 
>log in pth_sched.c
>I can reproduce server crashes really often and it's always crashing 
>while executing :
>
>     pth_sc(sigprocmask)(SIG_SETMASK, &pth_sigblock, &oss);
>
>in the function : intern void pth_sched_eventmanager(pth_time_t 
>*now, int dopoll)
>
>I know it's crashing there because my code now looks like :
>         pth_debug1("******** allow delivery (sigprocmask)"); // funcall
>     pth_sc(sigprocmask)(SIG_SETMASK, &pth_sigblock, &oss);
>         pth_debug1("******** end allow delivery"); // funcall
>
>I can see in my log the first log, but the second message never appear!
>Is it nornal that the variable oss is never initialized in this 
>function ? It looks weird to use a non initialized variable. My 
>system is not using syscall() but instead directly sigprocmask, can 
>someone on a linux/solaris system check how this pth_sc(sigprocmask) 
>is defined?

Well, scannign throught the pth source revealed that pth_sc(xyz) 
simply gets replaced with xyz in our case (on other systems, it will 
be changed to a call to "syscall" or something similar)

This means that the above call is identical to
   sigprocmask(SIG_SETMASK, &pth_sigblock, &oss);


oss is a pure output value, it is fine that it doesn't get 
initialised before; it is there to store the old sigmask


HTH a bit in understanding what is going on here. I will try to take 
a look at the code in pth and see if I can understand it ;).


Max
-- 
-----------------------------------------------
Max Horn
C++/ObjC/Java Developer

email: <mailto:max at quendi.de>
phone: (+49) 6151-494890



More information about the JDev mailing list