summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2022-05-26 19:48:05 +0100
committerAndras Timar <andras.timar@collabora.com>2022-06-07 15:38:02 +0200
commit289b5b2e2eeed70e5688bf30b39cafef7bdd7ac0 (patch)
treecfede4295fbb0cb1b79cb6d9f52d9e8836d152a7 /net
parentwds: enable experimental blocks unconditionally (diff)
downloadonline-289b5b2e2eeed70e5688bf30b39cafef7bdd7ac0.tar.gz
online-289b5b2e2eeed70e5688bf30b39cafef7bdd7ac0.zip
socket: only wakeup the mainloop on addCallback for the 1st callback.
Change-Id: I96d9f0d46a5557ba464664456ec82605780f7de1 Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'net')
-rw-r--r--net/Socket.hpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/Socket.hpp b/net/Socket.hpp
index 25534c941f..63d0730582 100644
--- a/net/Socket.hpp
+++ b/net/Socket.hpp
@@ -769,8 +769,10 @@ public:
void addCallback(const CallbackFn& fn)
{
std::lock_guard<std::mutex> lock(_mutex);
+ bool wasEmpty = _newCallbacks.empty();
_newCallbacks.emplace_back(fn);
- wakeup();
+ if (wasEmpty)
+ wakeup();
}
virtual void dumpState(std::ostream& os);