aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-02-27 20:35:44 +0100
committerMax Kellermann <max@duempel.org>2013-02-27 20:35:44 +0100
commit19c67ab72457d68fa35bdad8b4c5ed5ecf04816e (patch)
treea1a7a72c1e25ffc586d48777e88a63f06835a714
parenta046b6e10538ec8d31d63701b8fa6309bf26fe16 (diff)
Idle, GlobalEvents: use std::atomic::exchange()
Less overhead than fetch_and() for what we do.
-rw-r--r--src/GlobalEvents.cxx2
-rw-r--r--src/Idle.cxx2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/GlobalEvents.cxx b/src/GlobalEvents.cxx
index e4f335c9..7c4ffdc1 100644
--- a/src/GlobalEvents.cxx
+++ b/src/GlobalEvents.cxx
@@ -59,7 +59,7 @@ GlobalEventCallback(G_GNUC_UNUSED GIOChannel *source,
if (!GlobalEvents::wake_fd.Read())
return true;
- const unsigned flags = GlobalEvents::flags.fetch_and(0);
+ const unsigned flags = GlobalEvents::flags.exchange(0);
for (unsigned i = 0; i < GlobalEvents::MAX; ++i)
if (flags & (1u << i))
diff --git a/src/Idle.cxx b/src/Idle.cxx
index fefbd2fe..840a5d4e 100644
--- a/src/Idle.cxx
+++ b/src/Idle.cxx
@@ -61,7 +61,7 @@ idle_add(unsigned flags)
unsigned
idle_get(void)
{
- return idle_flags.fetch_and(0);
+ return idle_flags.exchange(0);
}
const char*const*