From 2bb01093c0898d2605ba7df0b2cba6e8541a8509 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 16 Jan 2013 23:24:58 +0100 Subject: Idle: don't wake up event loop on duplicate event --- src/Idle.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Idle.cxx b/src/Idle.cxx index f1423ebeb..fefbd2fe9 100644 --- a/src/Idle.cxx +++ b/src/Idle.cxx @@ -52,9 +52,10 @@ idle_add(unsigned flags) { assert(flags != 0); - idle_flags |= flags; + unsigned old_flags = idle_flags.fetch_or(flags); - GlobalEvents::Emit(GlobalEvents::IDLE); + if ((old_flags & flags) != flags) + GlobalEvents::Emit(GlobalEvents::IDLE); } unsigned -- cgit v1.2.3