Well, I tried executing something that should have no output:

import multiprocessing

foo = []
p = multiprocessing.Process(target=foo.append, args=(3,))
p.start()
p.join()

...alas, this still caused a maya crash.  Also, I tried using
executeInMainThreadWithResult:

import multiprocessing
import maya.utils

foo = []
p = multiprocessing.Process(target=maya.utils.executeInMainThreadWithResult,
args=(foo.append, 3))
p.start()
p.join()

...and this made not difference either.  (Actually, as I understand
it, since it's running as a separate process, shouldn't it ALREADY be
the main thread in that process?)

I also tried gui maya 2009 (with the backported module - I tested it
with mayapy first to make sure it worked), and also got crashes with
multiprocessing.

Unless I'm missing something obvious, it seems gui maya +
multiprocessing just don't get along...

- Paul

On Wed, Jun 9, 2010 at 9:18 PM, John Creson <[email protected]> wrote:
> In this case, are you printing into a maya gui?
> Perhaps, you need to try pushing the print to the main thread, so you
> don't step on Maya's event loop.
>
> import maya.utils
> import maya.cmds
> def doSphere( radius ):
>    maya.cmds.sphere( radius=radius )
> maya.utils.executeInMainThreadWithResult( doSphere, 5.0 )
>
> On Wed, Jun 9, 2010 at 9:48 PM, Paul Molodowitch <[email protected]> wrote:
>> So, given the issues with the GIL lock in python, I was excited about
>> using the new multiprocessing module... especially since a back port
>> is also available for python 2.5.
>>
>> I worked beautifully when I was playing around with it from mayapy -
>> but as soon as I tried to use it in a GUI maya, maya crashed
>> immediately.
>>
>> For the curious, here's what I was testing with:
>>
>> import multiprocessing
>> from pprint import pprint
>>
>> p = multiprocessing.Process(target=pprint, args=(dir,))
>> p.start()
>> p.join()
>>
>> Does anyone know if I'm doing anything wrong here? As I said, it seems
>> to work fine when done from a console.  Or does maya just not like
>> multiprocessing?  I know that it can have some issues with threads...
>> but given that things such as subprocess seem to work fine, I had hope
>> for multiprocessing...
>>
>> - Paul
>>
>> --
>> http://groups.google.com/group/python_inside_maya
>
> --
> http://groups.google.com/group/python_inside_maya

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to