diff --git a/NEWS b/NEWS index f41ae404e..1eaa866c1 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ ver 0.24 (not yet released) - new "search"/"find" filter "added-since" - allow range in listplaylist and listplaylistinfo - "sticker find" supports sort and window parameter and new sticker compare operators "eq", "lt" and "gt" + - consume only idle flags that were subscribed to * database - attribute "added" shows when each song was added to the database - fix integer overflows with 64-bit inode numbers diff --git a/src/client/Idle.cxx b/src/client/Idle.cxx index 0a129eb2d..282dbab9f 100644 --- a/src/client/Idle.cxx +++ b/src/client/Idle.cxx @@ -26,9 +26,11 @@ void Client::IdleNotify() noexcept { assert(idle_waiting); - assert(idle_flags != 0); - unsigned flags = std::exchange(idle_flags, 0) & idle_subscriptions; + const unsigned flags = idle_flags & idle_subscriptions; + idle_flags &= ~idle_subscriptions; + assert(flags != 0); + idle_waiting = false; Response r(*this, 0);