use waitUntilFree delivered with exception