fixed stop button, no can interrupt running experiment
This commit is contained in:
@@ -471,9 +471,10 @@ class DamarisGUI:
|
|||||||
|
|
||||||
self.id = self.lockfile.add_experiment()
|
self.id = self.lockfile.add_experiment()
|
||||||
while not self.lockfile.am_i_next():
|
while not self.lockfile.am_i_next():
|
||||||
self.stop_experiment_flag.wait(interval)
|
|
||||||
while gtk.events_pending():
|
while gtk.events_pending():
|
||||||
gtk.main_iteration_do(False)
|
gtk.main_iteration_do(False)
|
||||||
|
if self.stop_experiment_flag.wait(interval):
|
||||||
|
break
|
||||||
if loop_run > 1:
|
if loop_run > 1:
|
||||||
self.experiment_script_statusbar_label.set_text("Waiting for other experiment to finish")
|
self.experiment_script_statusbar_label.set_text("Waiting for other experiment to finish")
|
||||||
loop_run = 0
|
loop_run = 0
|
||||||
@@ -524,7 +525,10 @@ class DamarisGUI:
|
|||||||
print("waiting for threads stoping...", end=' ')
|
print("waiting for threads stoping...", end=' ')
|
||||||
still_running = [x for x in [ self.si.exp_handling, self.si.res_handling, self.si.back_driver ] if x is not None and x.is_alive( )]
|
still_running = [x for x in [ self.si.exp_handling, self.si.res_handling, self.si.back_driver ] if x is not None and x.is_alive( )]
|
||||||
for t in still_running:
|
for t in still_running:
|
||||||
t.join( )
|
while t.is_alive():
|
||||||
|
while gtk.events_pending():
|
||||||
|
gtk.main_iteration_do(False)
|
||||||
|
t.join( 0.05 )
|
||||||
print("done")
|
print("done")
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
@@ -3312,6 +3316,8 @@ class ScriptInterface:
|
|||||||
self.back_driver.start( )
|
self.back_driver.start( )
|
||||||
while (not self.back_driver.quit_flag.isSet( ) and \
|
while (not self.back_driver.quit_flag.isSet( ) and \
|
||||||
(self.back_driver.core_pid is None or self.back_driver.core_pid <= 0)):
|
(self.back_driver.core_pid is None or self.back_driver.core_pid <= 0)):
|
||||||
|
while gtk.events_pending():
|
||||||
|
gtk.main_iteration_do(False)
|
||||||
self.back_driver.quit_flag.wait( 0.1 )
|
self.back_driver.quit_flag.wait( 0.1 )
|
||||||
if self.exp_handling:
|
if self.exp_handling:
|
||||||
self.exp_handling.start( )
|
self.exp_handling.start( )
|
||||||
|
|||||||
Reference in New Issue
Block a user