diff --git a/src/include/pv-internal.h b/src/include/pv-internal.h index 9157e70..d611515 100644 --- a/src/include/pv-internal.h +++ b/src/include/pv-internal.h @@ -613,7 +613,7 @@ void pv_sig_checkbg(void); void pv_sig_nopause(void); void pv_remote_init(pvstate_t); -void pv_remote_check(pvstate_t); +bool pv_remote_check(pvstate_t); void pv_remote_fini(pvstate_t); int pv_remote_set(pvstate_t); diff --git a/src/main/remote.c b/src/main/remote.c index 4bcd15f..54f87f2 100644 --- a/src/main/remote.c +++ b/src/main/remote.c @@ -318,8 +318,10 @@ int pv_remote_set(opts_t opts, pvstate_t state) * * NB relies on pv_state_set_format() causing the output format to be * reparsed. + * + * Returns true if something was received, false otherwise. */ -void pv_remote_check(pvstate_t state) +bool pv_remote_check(pvstate_t state) { pid_t signal_sender; char control_filename[4096]; /* flawfinder: ignore */ @@ -333,13 +335,13 @@ void pv_remote_check(pvstate_t state) */ signal_sender = 0; if (!pv_sigusr2_received(state, &signal_sender)) - return; + return false; memset(control_filename, 0, sizeof(control_filename)); control_fptr = pv__control_file(control_filename, sizeof(control_filename), signal_sender, false); if (NULL == control_fptr) { pv_error("%s: %s", control_filename, strerror(errno)); - return; + return false; } /* @@ -349,12 +351,12 @@ void pv_remote_check(pvstate_t state) if (1 != fread(&msgbuf, sizeof(msgbuf), 1, control_fptr)) { pv_error("%s", strerror(errno)); (void) fclose(control_fptr); - return; + return false; } if (0 != fclose(control_fptr)) { pv_error("%s", strerror(errno)); - return; + return false; } /* @@ -398,6 +400,8 @@ void pv_remote_check(pvstate_t state) pv_state_format_string_set(state, msgbuf.format); if (msgbuf.extra_display[0] != '\0') pv_state_extra_display_set(state, msgbuf.extra_display); + + return true; } diff --git a/src/pv/loop.c b/src/pv/loop.c index c868cfd..cfb7bf6 100644 --- a/src/pv/loop.c +++ b/src/pv/loop.c @@ -219,7 +219,7 @@ int pv_main_loop(pvstate_t state) * Check for remote messages from -R every short while. */ if (pv_elapsedtime_compare(&cur_time, &next_remotecheck) > 0) { - pv_remote_check(state); + (void) pv_remote_check(state); pv_elapsedtime_add_nsec(&next_remotecheck, REMOTE_INTERVAL); } @@ -836,7 +836,7 @@ int pv_watchfd_loop(pvstate_t state) /* Check for remote messages from -R every short while. */ if (pv_elapsedtime_compare(&cur_time, &next_remotecheck) > 0) { - pv_remote_check(state); + (void) pv_remote_check(state); pv_elapsedtime_add_nsec(&next_remotecheck, REMOTE_INTERVAL); }