Doesn't this have the 'calling drain from this thread while other threads submit invocations' issue?