diff options
| author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-07-12 10:31:13 +0000 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-07-12 10:31:13 +0000 | 
| commit | 3e9ee89b3ccf48dcabf7de2ecafcfbf637595cfe (patch) | |
| tree | c2e257101d4f52190a5fc6e2e00e8b6d8d637932 /src/irmd | |
| parent | 9bbc7b4ba57a13e425fcfdfd6bd7ba5248255721 (diff) | |
| parent | eaa2dff945366ed43b28fb1ae8e5c10ce95d9964 (diff) | |
| download | ouroboros-3e9ee89b3ccf48dcabf7de2ecafcfbf637595cfe.tar.gz ouroboros-3e9ee89b3ccf48dcabf7de2ecafcfbf637595cfe.zip | |
Merged in dstaesse/ouroboros/be-irmd-shutdown (pull request #527)
irmd: Shutdown sanitizer without cancellation
Diffstat (limited to 'src/irmd')
| -rw-r--r-- | src/irmd/main.c | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/src/irmd/main.c b/src/irmd/main.c index b2e6ba9c..db6f33de 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1514,8 +1514,9 @@ void * shm_sanitize(void * o)          (void) o; -        while (true) { -                shm_rdrbuff_wait_full(irmd.rdrb); +        while (irmd_get_state() == IRMD_RUNNING) { +                if (shm_rdrbuff_wait_full(irmd.rdrb, &ts) == -ETIMEDOUT) +                        continue;                  pthread_rwlock_wrlock(&irmd.flows_lock); @@ -1536,8 +1537,6 @@ void * shm_sanitize(void * o)                  }                  pthread_rwlock_unlock(&irmd.flows_lock); - -                nanosleep(&ts, NULL);          }          return (void *) 0; @@ -2247,8 +2246,6 @@ int main(int     argc,          pthread_join(irmd.tpm, NULL);          pthread_join(irmd.irm_sanitize, NULL); - -        pthread_cancel(irmd.shm_sanitize);          pthread_join(irmd.shm_sanitize, NULL);          pthread_sigmask(SIG_BLOCK, &sigset, NULL); | 
