From 6b26088c279130425d630fd8b9b5af4177d81ac6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 18 Jul 2020 11:42:57 +0530 Subject: [PATCH] move wakeup out of locked region --- kitty/child-monitor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kitty/child-monitor.c b/kitty/child-monitor.c index f9d2515cf..8252f8757 100644 --- a/kitty/child-monitor.c +++ b/kitty/child-monitor.c @@ -1525,6 +1525,7 @@ end: static void send_response(id_type peer_id, const char *msg, size_t msg_sz) { + bool wakeup = false; talk_mutex(lock); for (size_t i = 0; i < talk_data.num_peers; i++) { Peer *peer = talk_data.peers + i; @@ -1541,11 +1542,12 @@ send_response(id_type peer_id, const char *msg, size_t msg_sz) { memcpy(peer->write.data + peer->write.used, msg, msg_sz); peer->write.used += msg_sz; } - wakeup_talk_loop(false); + wakeup = true; break; } } talk_mutex(unlock); + if (wakeup) wakeup_talk_loop(false); } // }}}