signal -> notify
fix spurious deadlock in unbuffered send/recv