conditional synchronization