Yes, it is set only once in requestSegments() and should be checked in awaitCompletion(), which always happens after requestSegments() and should be invoked from same thread. The second part is missing, I'll add the check now.