From: <ro...@us...> - 2014-04-24 13:57:42
|
Revision: 3493 http://sourceforge.net/p/nscldaq/code/3493 Author: ron-fox Date: 2014-04-24 13:57:39 +0000 (Thu, 24 Apr 2014) Log Message: ----------- Incorporate merged changes to eventLogBundle. Modified Paths: -------------- branches/nscldaq-11.0-development/daq/readoutgui/eventLogBundle.tcl Modified: branches/nscldaq-11.0-development/daq/readoutgui/eventLogBundle.tcl =================================================================== --- branches/nscldaq-11.0-development/daq/readoutgui/eventLogBundle.tcl 2014-04-24 13:34:36 UTC (rev 3492) +++ branches/nscldaq-11.0-development/daq/readoutgui/eventLogBundle.tcl 2014-04-24 13:57:39 UTC (rev 3493) @@ -52,7 +52,12 @@ # and finalizes the event and ancillary data. # * {Paused,Active} -> Halted (enter): Cleans up the logger start and logger # done files. +# * {Paused, Active} -> NotReady(enter): +# If the eventlogPID is set force the +# eventlog to exit and finalize the run. # +# +# # The EventLogger DAQ configuration parameter is used to determine which # event logger is started (DaqParameters). @@ -311,7 +316,7 @@ } incr waitTimeoutMs -$pollInterval after $pollInterval - update; # keep the event loop semi-live. TODO: Deactivate buttons. +# update idletasks; # keep the event loop semi-live. TODO: Deactivate buttons. } return 0 } @@ -472,6 +477,17 @@ # * Wait for the .started file to appear. # proc ::EventLog::runStarting {} { + + # If there's already an event logger just force it to exit. + + if {$::EventLog::loggerPid ne -1} { + foreach pid $::EventLog::loggerPid { + catch {exec kill -9 $pid}; # Catch because the pipeline could run down. + set ::EventLog::loggerPid -1 + } + } + + # Now if desired start the new run. if {[::ReadoutGUIPanel::recordData]} { if {[::EventLog::_duplicateRun]} { @@ -512,6 +528,9 @@ set ::EventLog::expectingExit 1 ::EventLog::_waitForFile $exitFile $::EventLog::shutdownTimeout \ $::EventLog::filePollInterval + foreach pid $::EventLog::loggerPid { + catch {exec kill -9 $pid}; # in case waitforfile timed out. + } set ::EventLog::loggerPid -1 ::EventLog::_finalizeRun file delete -force $startFile; # So it's not there next time!! @@ -557,6 +576,9 @@ if {($from in [list Active Paused]) && ($to eq "Halted")} { ::EventLog::runEnding } + if {($from in [list Active Paused]) && ($to eq "NotReady")} { + ::EventLog::runEnding + } } ## # ::EventLog::leave This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |