'Calls func with the given arguments at some later point, within this
scheduler.  This is a good way for another thread to call something in
a co-op-thread-safe manner.'

def callLater(self, func, *args, **kw):

    with self._lock:
        if (self._callLaterTask is None):
            self._callLaterTask = CallLaterTask()
            self._callLaterTask.start()
    self._callLaterTask.callLater(func, *args, **kw)
