From 810a603fb2afa0a3be3e7154886e0ebe9824b93b Mon Sep 17 00:00:00 2001 From: Roy Vegard Ovesen Date: Wed, 3 Apr 2013 16:18:42 +0200 Subject: [PATCH] Prevent infinite loops --- gtk2_ardour/ardour_ui.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 084f7923d1..e41d077284 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -666,16 +666,21 @@ ARDOUR_UI::startup () if (!nsm->init (nsm_url)) { nsm->announce (PROGRAM_NAME, ":dirty:", "ardour3"); + unsigned int i = 0; // wait for announce reply from nsm server - do { + for ( i = 0; i < 5000; ++i) { nsm->check (); - usleep (10); - } while (!nsm->is_active ()); + usleep (i); + if (nsm->is_active()) + break; + } // wait for open command from nsm server - do { + for ( i = 0; i < 5000; ++i) { nsm->check (); - usleep (10); - } while (!nsm->client_id ()); + usleep (1000); + if (nsm->client_id ()) + break; + } if (_session && nsm) { _session->set_nsm_state( nsm->is_active() );