trying to push the blocking wait onto another thread