summaryrefslogtreecommitdiff
path: root/src/irmd
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-07-28 11:46:55 +0200
committerdimitri staessens <[email protected]>2016-07-28 11:46:55 +0200
commitf2e87e236ad89b4a3fc4dda59ed42ab9af04d08c (patch)
tree88d94943823a7d44b2be9d13ba267cf04c995fe9 /src/irmd
parent351a48acbe1295e7a446951b7ae7c461d42b8bbb (diff)
downloadouroboros-f2e87e236ad89b4a3fc4dda59ed42ab9af04d08c.tar.gz
ouroboros-f2e87e236ad89b4a3fc4dda59ed42ab9af04d08c.zip
irmd: Fix allocation result
It was missing the FLOW_PENDING state. All states that are not FLOW_ALLOCATED should return -1. This is now fixed.
Diffstat (limited to 'src/irmd')
-rw-r--r--src/irmd/main.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c
index d7119bac..b071ff1c 100644
--- a/src/irmd/main.c
+++ b/src/irmd/main.c
@@ -998,17 +998,13 @@ static int flow_alloc_res(int port_id)
return 0;
}
- if (e->state == FLOW_DESTROY) {
- /* don't release the port_id, AP has to call dealloc */
- e->state = FLOW_NULL;
- pthread_cond_signal(&e->state_cond);
- pthread_mutex_unlock(&e->state_lock);
- pthread_rwlock_unlock(&irmd->flows_lock);
- pthread_rwlock_unlock(&irmd->state_lock);
- return -1;
- }
+ e->state = FLOW_NULL;
+ pthread_cond_signal(&e->state_cond);
+ pthread_mutex_unlock(&e->state_lock);
+ pthread_rwlock_unlock(&irmd->flows_lock);
+ pthread_rwlock_unlock(&irmd->state_lock);
- return 0;
+ return -1;
}
static int flow_dealloc(int port_id)