File 0054-vici-signal-waiting-threads-when-skipping-disconnected-connections.patch of Package strongswan.31464
commit eec3bdb04a1e24bfcab6fa828c15e613f2952cf3
Author: Tobias Brunner <tobias@strongswan.org>
Date: Fri May 7 15:32:49 2021 +0200
vici: Signal waiting threads when skipping disconnected connections
If two threads are waiting in find_entry() and remove_entry(),
respectively, and the former is woken first, the latter remains stuck
as it won't get signaled.
diff --git a/src/libcharon/plugins/vici/vici_socket.c b/src/libcharon/plugins/vici/vici_socket.c
index babbc6d4b..58d33587d 100644
--- a/src/libcharon/plugins/vici/vici_socket.c
+++ b/src/libcharon/plugins/vici/vici_socket.c
@@ -191,6 +191,7 @@ static entry_t* find_entry(private_vici_socket_t *this, stream_t *stream,
}
if (entry->disconnecting)
{
+ entry->cond->signal(entry->cond);
continue;
}
candidate = TRUE;