diff options
-rw-r--r-- | test/vfd_swmr_common.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/test/vfd_swmr_common.c b/test/vfd_swmr_common.c index 9cd604b..6db9bfa 100644 --- a/test/vfd_swmr_common.c +++ b/test/vfd_swmr_common.c @@ -66,12 +66,19 @@ await_signal(hid_t fid) const int rc = sigtimedwait(&sleepset, NULL, &tick); if (rc == SIGUSR1) { - printf("Cancelled by SIGUSR1.\n"); + printf("Received SIGUSR1, wrapping things up.\n"); break; } else if (rc == -1 && errno == EAGAIN) { H5E_auto_t efunc; void *edata; + /* Avoid deadlock with peer: periodically enter the API so that + * tick processing occurs and data is flushed so that the peer + * can see it. + * + * The call we make will fail, but that's ok, + * so squelch errors. + */ (void)H5Eget_auto(H5E_DEFAULT, &efunc, &edata); (void)H5Eset_auto(H5E_DEFAULT, NULL, NULL); (void)H5Aexists_by_name(fid, "nonexistent", "nonexistent", |