summaryrefslogtreecommitdiff
path: root/src/irmd/irm_flow.c
diff options
context:
space:
mode:
authorDimitri Staessens <[email protected]>2023-03-05 12:17:46 +0100
committerSander Vrijders <[email protected]>2023-03-08 11:40:29 +0100
commitf16b4a1954ab4fbca0ec403f6a04c80375328921 (patch)
tree234c1f8dae1d9b72667c2a937d3eab3b2d1dd681 /src/irmd/irm_flow.c
parentf38936e62cfcf8f0add97c4bea3b5662f3e07a19 (diff)
downloadouroboros-f16b4a1954ab4fbca0ec403f6a04c80375328921.tar.gz
ouroboros-f16b4a1954ab4fbca0ec403f6a04c80375328921.zip
irmd: Fix cleanup of failed flows
If a flow allocation failed, the flow was left in a pending state instead of a failed state, which caused the irmd to hang on exit. Signed-off-by: Dimitri Staessens <[email protected]> Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/irmd/irm_flow.c')
-rw-r--r--src/irmd/irm_flow.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/irmd/irm_flow.c b/src/irmd/irm_flow.c
index 5bc8dde4..8bdda86b 100644
--- a/src/irmd/irm_flow.c
+++ b/src/irmd/irm_flow.c
@@ -135,7 +135,7 @@ void irm_flow_destroy(struct irm_flow * f)
else
f->state = FLOW_NULL;
- pthread_cond_signal(&f->state_cond);
+ pthread_cond_broadcast(&f->state_cond);
pthread_cleanup_push(cancel_irm_destroy, f);