diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2017-04-04 17:15:27 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2017-04-04 17:15:27 (GMT) |
commit | 48687ab50fff2f21a7f7dd3fe746377819cae8b7 (patch) | |
tree | 400020f2b5e6bca6ffb32985fadb237452e05e3c | |
parent | c2941faa6673022218b365ead5be24b02c47ab6a (diff) | |
parent | d522632b9e1f1d88db2117e89f3caba0dc4cf38b (diff) | |
download | hdf5-48687ab50fff2f21a7f7dd3fe746377819cae8b7.zip hdf5-48687ab50fff2f21a7f7dd3fe746377819cae8b7.tar.gz hdf5-48687ab50fff2f21a7f7dd3fe746377819cae8b7.tar.bz2 |
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit 'd522632b9e1f1d88db2117e89f3caba0dc4cf38b':
Switch to using flag in signal handler, to trigger dropping out of main loop and shutdown cleanly, instead of calling leave() from the signal handler.
-rw-r--r-- | hl/tools/h5watch/h5watch.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/hl/tools/h5watch/h5watch.c b/hl/tools/h5watch/h5watch.c index 97dca7a..f37b2b4 100644 --- a/hl/tools/h5watch/h5watch.c +++ b/hl/tools/h5watch/h5watch.c @@ -43,6 +43,7 @@ static int g_display_width = 80; /* output width in characters */ static hbool_t g_simple_output = FALSE; /* make output more machine-readable */ static unsigned g_retry = DEFAULT_RETRY; /* # of times to try opening the file if somehow file is unstable */ static hbool_t g_display_hex = FALSE; /* display data in hexadecimal format : LATER */ +static hbool_t g_user_interrupt = FALSE; /* Flag to indicate that user interrupted execution */ static herr_t doprint(hid_t did, hsize_t *start, hsize_t *block, int rank); static herr_t slicendump(hid_t did, hsize_t *prev_dims, hsize_t *cur_dims, @@ -337,7 +338,8 @@ monitor_dataset(hid_t fid, char *dsetname) goto done; } - while(1) { + /* Loop until an error occurs or the user interrupts execution */ + while(!g_user_interrupt) { /* Refreshes the dataset */ if(H5Drefresh(did) < 0) { @@ -798,9 +800,8 @@ parse_command_line(int argc, const char *argv[]) */ static void catch_signal(int H5_ATTR_UNUSED signo) { - /* Exit from h5watch */ - leave(EXIT_SUCCESS); - + /* Set the flag to get out of the main loop */ + g_user_interrupt = TRUE; } /* catch_signal() */ |