Call retrieve() in its own thread to not block invocation threads.