diff options
author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-08-10 12:31:14 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-08-10 12:31:14 +0200 |
commit | 0ec8f7b6d977a9cc469445d4990d432253f979d9 (patch) | |
tree | 33ca5c8a7a237952b8c037596ecdd874b518a6fb /src/irmd/main.c | |
parent | 31b2edb845628e1d6b1b5b17821b060c152679af (diff) | |
parent | 6e854784ebc67af1eb8cdc3209f574e0af5e574d (diff) | |
download | ouroboros-0ec8f7b6d977a9cc469445d4990d432253f979d9.tar.gz ouroboros-0ec8f7b6d977a9cc469445d4990d432253f979d9.zip |
Merged in sandervrijders/ouroboros/be-bootstrap (pull request #199)
Several small fixes and enhancements
Diffstat (limited to 'src/irmd/main.c')
-rw-r--r-- | src/irmd/main.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c index f9f34416..947645ca 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1337,6 +1337,8 @@ void * irm_flow_cleaner() struct timespec now; struct list_head * pos = NULL; struct list_head * n = NULL; + struct list_head * h = NULL; + struct list_head * t = NULL; struct timespec timeout = {IRMD_CLEANUP_TIMER / BILLION, IRMD_CLEANUP_TIMER % BILLION}; @@ -1415,6 +1417,17 @@ void * irm_flow_cleaner() LOG_INFO("Spawned process %d terminated " "with exit status %d.", api->api, status); + + list_for_each_safe(h, t, &irmd->ipcps) { + struct ipcp_entry * e = + list_entry(h, struct ipcp_entry, + next); + if (e->api == api->api) { + list_del(&e->next); + ipcp_entry_destroy(e); + } + } + list_del(&api->next); free(api); } |