protect cond with mutex when signaling, cleanup io test case