interruptable waiting