512 obj.res = default_evaluator(tocall, *args, **kwargs) |
512 obj.res = default_evaluator(tocall, *args, **kwargs) |
513 wx_eval_lock.release() |
513 wx_eval_lock.release() |
514 |
514 |
515 def evaluator(tocall, *args, **kwargs): |
515 def evaluator(tocall, *args, **kwargs): |
516 global main_thread |
516 global main_thread |
517 if(main_thread == currentThread()): |
517 if main_thread == currentThread(): |
518 # avoid dead lock if called from the wx mainloop |
518 # avoid dead lock if called from the wx mainloop |
519 return default_evaluator(tocall, *args, **kwargs) |
519 return default_evaluator(tocall, *args, **kwargs) |
520 else: |
520 else: |
521 o = type('', (object,), dict(call=(tocall, args, kwargs), res=None)) |
521 o = type('', (object,), dict(call=(tocall, args, kwargs), res=None)) |
522 wx.CallAfter(wx_evaluator, o) |
522 wx.CallAfter(wx_evaluator, o) |