"The script or callable object is executed in the main thread during the next idle event. The thread callingexecuteInMainThreadWithResult() blocks until the main thread becomes idle and runs the code. Once the main thread is done executing the code, executeInMainThreadWithResult() returns the result. If executeInMainThreadWithResult() is called from the main thread, then it simply runs the code immediately and returns the result.
Because idle events are being used to implement executeInMainThreadWithResult(), it is not available in batch mode. " This is from http://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/Python-Python-and-threading-htm.html So yeah, basically by nesting these you end up in a situation where you've blocked the main thread, waiting for a result, and because its blocked, it can't process the idle queue to get that result. Which is why this does work if you just use executeDeferred(), which doesn't block in the same way. On Friday, November 21, 2014 9:24:13 AM UTC-6, Marcus Ottosson wrote: > > Could it be that the inner call is waiting for the outer call to finish, > before it can start? And because it never starts, the outer call is never > finished? > > On 21 November 2014 14:06, Marcus Ottosson <[email protected] > <javascript:>> wrote: > >> That would have been acceptable, but it actually locks Maya up when used >> from within a thread as well. Seems no matter how I twist and turn, that >> call called from within another call locks Maya up. >> >> On 21 November 2014 12:46, Eduardo Grana <[email protected] >> <javascript:>> wrote: >> >>> Hey Marcus, >>> >>> Maybe it's like nuke's similar command, that is only meant to be used >>> inside other threads, and not the main one... >>> Just thinking out loud... >>> Cheers! >>> Eduardo >>> >>> >>> On Fri, Nov 21, 2014 at 9:02 AM, Marcus Ottosson <[email protected] >>> <javascript:>> wrote: >>> >>>> This locks up Maya. >>>> >>>> from maya import utils >>>> def nested_func(): >>>> print "Hello world" >>>> def func(): >>>> utils.executeInMainThreadWithResult(nested_func) >>>> >>>> utils.executeInMainThreadWithResult(func) >>>> >>>> Though I can currently work around it, I can’t quite understand why it >>>> would lock up. >>>> >>>> -- >>>> *Marcus Ottosson* >>>> [email protected] <javascript:> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Python Programming for Autodesk Maya" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected] >>>> <javascript:>. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOB0ag9qydyNXS-CqKuhvUf%2BBEAXQxnsqxPhWamF%2BXinyQ%40mail.gmail.com >>>> >>>> <https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOB0ag9qydyNXS-CqKuhvUf%2BBEAXQxnsqxPhWamF%2BXinyQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Eduardo Graña >>> www.eduardograna.com.ar >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Python Programming for Autodesk Maya" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/python_inside_maya/CACt6GrmATAuHuAzhpY%2BXgECBKXGJtGJG2%2BgOwU8KWs6MFVRDPg%40mail.gmail.com >>> >>> <https://groups.google.com/d/msgid/python_inside_maya/CACt6GrmATAuHuAzhpY%2BXgECBKXGJtGJG2%2BgOwU8KWs6MFVRDPg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> *Marcus Ottosson* >> [email protected] <javascript:> >> > > > > -- > *Marcus Ottosson* > [email protected] <javascript:> > -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/2c5bd8a8-5a77-40c2-87ae-78186e1d7017%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
