[Haskell-cafe] Re: syscall, sigpause and EINTR on Mac OSX

Branimir Maksimovic bmaxa at hotmail.com
Sun Dec 11 11:50:12 EST 2005




>From: Joel Reymont <joelr1 at gmail.com>
>To: Haskell Cafe <haskell-cafe at haskell.org>
>Subject: [Haskell-cafe] Re: syscall, sigpause and EINTR on Mac OSX
>Date: Sun, 11 Dec 2005 16:33:36 +0000
>
>I looked at the scheduler source code and it appears that GHC goes to  wait 
>for signals when a deadlock is detected and there's nothing else  to do.
>
>It still does not explain where the signal comes from when I'm away  from 
>the keyboard.

This is not signal, it is result from call to pause() .

#if !defined(RTS_SUPPORTS_THREADS)
void
awaitUserSignals(void)
{
    while (!signals_pending() && !interrupted) {
	pause(); <<<<<<<<<< this is where it stops and waits for signals
    }
}
#endif

you have to look elsewhere as this is normal behavior.
Strange is that you are using threaded
run time  (I guess ) but this function is defined only for single threaded 
variant.
This I implied from #if !defined(RTS_SUPPORTS_THREADS)

Greetings, Bane.

>
>On Dec 11, 2005, at 4:10 PM, Joel Reymont wrote:
>
>>(gdb) where
>>#0  0x90006068 in syscall ()
>>#1  0x9004420c in sigpause ()
>>#2  0x001791b8 in awaitUserSignals () at Signals.c:256
>>#3  0x0012e1a8 in schedule (mainThread=0x1300360,  initialCapability=0x0) 
>>at Schedule.c:518
>>[...]
>>My program is currently stuck here. The man pages say that sigpause  will 
>>only terminate by being interrupted and EINTR will be the  errno. EINTR is 
>>signal 2, the same one that I'm trapping and the  one sent when ^C is 
>>pressed.
>
>--
>http://wagerlabs.com/
>
>
>
>
>
>_______________________________________________
>Haskell-Cafe mailing list
>Haskell-Cafe at haskell.org
>http://www.haskell.org/mailman/listinfo/haskell-cafe

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



More information about the Haskell-Cafe mailing list