On 2009-11-12 16:44 PM, Andrew Straw wrote: > Robert Kern wrote: >> On 2009-11-12 12:05 PM, Andrew Straw wrote: >> >>> Celil Rufat wrote: >>> >>>> I just installed matplotlib on Snow Leopard 10.6 with the Qt4 backend >>>> (via macports). However, when I try one of the Qt4 examles: >>>> >>>> python >>>> /opt/local/share/py26-matplotlib/examples/user_interfaces/embedding_in_qt4.py >>>> >>>> >>>> IOError: [Errno 4] Interrupted system call >>>> >>>> Any ideas on what could be causing this? >>>> >>> Out of curiosity, does anyone know where the signal interrupting the >>> system call is originating? Is this a standard communication mechanism >>> within Qt4? (I have never used Qt4.) I'm interested in knowing about OSS >>> that use signals as a means of across-thread or across-process >>> communication. >>> >> >> This problem arises when signal handlers are installed, not necessarily when >> a >> signal itself is sent (dtrace doesn't detect any). > Hmm, but a system call isn't going to get interrupted and return EINTR > by any means other than a signal. So the OP must have had a signal > interrupting the call and it must have come from somewhere. Or... am I > wrong?
Well, SIGCHLD is sent by the OS when the child process completes. There is a SIGCHLD handler registered in ./src/corelib/io/qprocess_unix.cpp . I'm not sure how to avoid it, though. I think I can verify this now: $ really dtrace -n 'proc:::signal-handle /pid==$target/ { ustack(); printf("Signal: %d\n", arg0);}' -c "python application.py" dtrace: description 'proc:::signal-handle ' matched 2 probes Traceback (most recent call last): File "application.py", line 247, in <module> commands.getstatusoutput( "otool -L %s | grep libedit" % _rl.__file__ ) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/commands.py", line 54, in getstatusoutput text = pipe.read() IOError: [Errno 4] Interrupted system call dtrace: pid 47973 has exited CPU ID FUNCTION:NAME 1 18577 sendsig:signal-handle libSystem.B.dylib`read+0xa libSystem.B.dylib`__srefill+0x127 libSystem.B.dylib`fread+0x9f 0x1c2d9b 0x23affa 0x23bde1 0x23c7fa 0x23c907 0x260d37 0x2610e3 0x26f855 python`0x1f82 python`0x1ea9 0x2 Signal: 20 $ python -c "import signal;print signal.SIGCHLD" 20 So it is getting SIGCHLD. I think my previous probes weren't getting signals from the OS itself. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users