From: Tobias Brunner Date: Fri, 7 May 2021 13:32:49 +0000 (+0200) Subject: vici: Signal waiting threads when skipping disconnected connections X-Git-Tag: 5.9.3dr4~8^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eec3bdb04a1e24bfcab6fa828c15e613f2952cf3;p=thirdparty%2Fstrongswan.git 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 babbc6d4bc..58d33587d7 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;