[Eric] Subprocess: configure fork

Jamie Riotto jamie.riotto at gmail.com
Sun Oct 16 20:11:09 BST 2011


Ok, here is a very simple test:

from multiprocessing import Process, Queue

def f(x):
    q, i = x
    q.put([i, i*i])

if __name__ == '__main__':
    q = Queue()
    for i in range(10):
        p = Process(target=f, args=((q, i), ))
        p.start()
    for i in range(10):
        print q.get()
        p.join()

Here are the results of running on the two systems:

System1:
Windows XP Professional V.2002-Service Pack 3
Python 2.7.2
Qt 4.7.1
PyQt 4.8.3
Eric4-4.4.16

'Run Script' = Runs no popups (as expected)
'Debug Script / Fork w/o pausing UNCHECKED = Runs no popups (I would
have expected the pop-up box here!)
'Debug Script / Fork w/o pausing CHECKED = Runs no popups (as expected)


System2:
Max OS X 10.6.7
Python 2.7.1
Qt 4.7.3
PyQt 4.8.4
Eric4-4.4.16

'Run Script' = 10 'Select the fork branch to follow...' popups appear,
then runs (I would have expected *no* pop-up box here!)
'Debug Script / Fork w/o pausing UNCHECKED =  10 'Select the fork
branch to follow...' popups appear, then runs (as expected)
'Debug Script / Fork w/o pausing CHECKED = Runs no popups (as expected)


So, the issue on the Mac seems to be only in the 'Run Script' case
behaving like 'Debug / UNCHECKED' case.
Interestingly, on Windows, I seem to have a different issue in that no
popups occur under any of the three conditions.

Digging slightly deeper, I then set the 'Debug child process' on the
windows machine with a breakpoint at the 'q.put([i,i*i])' line in the
child
process, and the test completed but it never triggered.

Running the same test on the Mac, triggered the breakpoint in the
child process immediately.

Hope this helps. Let me know if I can supply any other info.
Cheers - jamie

On Sat, Oct 15, 2011 at 9:00 AM, Detlev Offenbach
<detlev at die-offenbachs.de> wrote:
> Hello,
>
> please provide the test script. Maybe there is a glitch somewhere and I can debug it with your help.
>
> Regards,
> Detlev
>
> Am 15.10.2011 um 17:52 schrieb Jamie Riotto:
>
>> Well, fwiw, I've seen the same thing. I have an app that forks off say
>> 8 computational threads.
>> It behaves perfectly under eric on windows, but when I ran it on a
>> linux (Max) system, even though
>> I checked the first box, the question popped up a total of 8 times.
>> Now to be fair, that was
>> on a Mac, which I know is not officially supported, so I never
>> reported it as a bug. I can supply
>> a small test using Process Pools that demonstrates the problem, but
>> again, only on the Mac.
>> Cheers - Jamie Riotto
>>
>> On Fri, Oct 14, 2011 at 10:46 AM, Detlev Offenbach
>> <detlev at die-offenbachs.de> wrote:
>>> Am Freitag, 14. Oktober 2011, 16:55:03 schrieb Leonardo Giordani:
>>>> Hi all,
>>>>
>>>> when running or debugging programs which execute a subprocess() or other
>>>> system calls I keep being asked by Eric which to follow, if parent or child
>>>> process.
>>>> This happens each subprocess it runs into and since I'm working on a project
>>>> with hundreds of them it quickly becomes not usable.
>>>>
>>>> This happens when running unit tests, too.
>>>>
>>>> Is it possible to configure Eric such that it goes through forking without
>>>> asking?
>>>
>>> The Start Debug dialog has two checkboxes for this. The first enables
>>> automatic forking and the second indicates to follow the child (if checked).
>>>
>>>>
>>>> I'm using Eric 4.4.17 (r4101)
>>>>
>>>> Thank you very much
>>>>
>>>> Leonardo
>>>
>>> Detlev
>>> --
>>> Detlev Offenbach
>>> detlev at die-offenbachs.de
>>> _______________________________________________
>>> Eric mailing list
>>> Eric at riverbankcomputing.com
>>> http://www.riverbankcomputing.com/mailman/listinfo/eric
>>>
>> _______________________________________________
>> Eric mailing list
>> Eric at riverbankcomputing.com
>> http://www.riverbankcomputing.com/mailman/listinfo/eric
>
> Detlev Offenbach
> detlev at die-offenbachs.de
>
>
>
>


More information about the Eric mailing list