use a notification to prevent waiting busy loops