diff --git a/examples/unix/c11/z_liveliness.c b/examples/unix/c11/z_liveliness.c index 8e90c4f2a..f120156ee 100644 --- a/examples/unix/c11/z_liveliness.c +++ b/examples/unix/c11/z_liveliness.c @@ -20,21 +20,15 @@ #if Z_FEATURE_LIVELINESS == 1 -static volatile int keepRunning = 1; -/* -void intHandler(int dummy) { - (void)dummy; - keepRunning = 0; -} -*/ int main(int argc, char **argv) { const char *keyexpr = "group1/zenoh-pico"; const char *mode = "client"; const char *clocator = NULL; const char *llocator = NULL; + unsigned int timeout = 0; int opt; - while ((opt = getopt(argc, argv, "k:e:m:l:")) != -1) { + while ((opt = getopt(argc, argv, "k:e:m:l:t:")) != -1) { switch (opt) { case 'k': keyexpr = optarg; @@ -48,8 +42,12 @@ int main(int argc, char **argv) { case 'l': llocator = optarg; break; + case 't': + timeout = atoi(optarg); + break; case '?': - if (optopt == 'k' || optopt == 'e' || optopt == 'm' || optopt == 'v' || optopt == 'l') { + if (optopt == 'k' || optopt == 'e' || optopt == 'm' || optopt == 'v' || optopt == 'l' || + optopt == 't') { fprintf(stderr, "Option -%c requires an argument.\n", optopt); } else { fprintf(stderr, "Unknown option `-%c'.\n", optopt); @@ -98,8 +96,8 @@ int main(int argc, char **argv) { } printf("Press CTRL-C to undeclare liveliness token and quit...\n"); - // signal(SIGINT, intHandler); - while (keepRunning) { + z_clock_t clock = z_clock_now(); + while (timeout == 0 || z_clock_elapsed_s(&clock) < timeout) { z_sleep_s(1); } diff --git a/tests/memory_leak.py b/tests/memory_leak.py index 78fdd2378..9e5d90382 100644 --- a/tests/memory_leak.py +++ b/tests/memory_leak.py @@ -121,7 +121,7 @@ def query_and_queryable(query_cmd, queryable_cmd): z_query_process.wait() print(f"Stop {queryable_cmd}") - time.sleep(2) + time.sleep(10) if z_queryable_process.poll() is None: # send SIGINT to group z_quaryable_process_gid = os.getpgid(z_queryable_process.pid) @@ -178,7 +178,7 @@ def query_and_queryable(query_cmd, queryable_cmd): # EXIT_STATUS = 1 # Test liveliness query print("*** Get liveliness test ***") - if query_and_queryable('z_get_liveliness', 'z_liveliness') == 1: + if query_and_queryable('z_get_liveliness', 'z_liveliness -t 5') == 1: EXIT_STATUS = 1 # Test liveliness subscriber print("*** Liveliness subscriber test ***")