From bb2671883482379c9abb08c7ba06855fe0e0df23 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Tue, 9 Apr 2013 17:50:56 -0700 Subject: [PATCH] NSM: Wait up to 60 seconds for all clients to close. --- session-manager/src/nsmd.C | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/session-manager/src/nsmd.C b/session-manager/src/nsmd.C index 4970e34..2c428bf 100644 --- a/session-manager/src/nsmd.C +++ b/session-manager/src/nsmd.C @@ -942,12 +942,12 @@ wait_for_killed_clients_to_die ( ) MESSAGE( "Waiting for killed clients to die." ); - for ( int i = 0; i < 24; i++ ) + for ( int i = 0; i < 60; i++ ) { MESSAGE( "Loop %i", i ); if ( ! killed_clients_are_alive() ) - break; + goto done; ssize_t s = read(signal_fd, &fdsi, sizeof(struct signalfd_siginfo)); @@ -959,17 +959,19 @@ wait_for_killed_clients_to_die ( ) purge_dead_clients(); - usleep( 200 * 1000 ); + /* check OSC so we can get /progress messages. */ + osc_server->check(); + + sleep(1); } - if ( killed_clients_are_alive() ) - { - WARNING( "Killed clients are still alive" ); - /* FIXME: give up on remaining clients and purge them */ - } - else - MESSAGE( "All clients have died." ); + WARNING( "Killed clients are still alive" ); + + return; +done: + + MESSAGE( "All clients have died." ); }