This library provides simple deferred result.
Create deferred result:
def_result = DeferredResult[str]()
Then you can wait for the result using optional timeout:
result = def_result.wait(timeout=1)
While waiting for result other thread can set result:
After resolving result all threads waiting for result will be resumed.
It is also possible to reject deferred result:
In that case all threads waiting for result will be resumed and exception passed to
reject will be thrown.