Callback-only condition variables