'wait for me to finish, like Thread.join.
Reimplemented appropriately by subclasses.'

def join(self, timeout=None):

    tic = time.time()
    toc = tic
    while ((not self.done) and (not ((timeout is not None) and ((toc - tic) > timeout)))):
        time.sleep(0.001)
        toc = time.time()
