Commit 28825183 authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Tries to handle BrokenBarrier Exception

Showing with 8 additions and 4 deletions
+8 -4
...@@ -10,7 +10,7 @@ from ohmpi.hardware_components.abstract_hardware_components import CtlAbstract ...@@ -10,7 +10,7 @@ from ohmpi.hardware_components.abstract_hardware_components import CtlAbstract
from ohmpi.logging_setup import create_stdout_logger from ohmpi.logging_setup import create_stdout_logger
from ohmpi.utils import update_dict from ohmpi.utils import update_dict
from ohmpi.config import HARDWARE_CONFIG from ohmpi.config import HARDWARE_CONFIG
from threading import Thread, Event, Barrier from threading import Thread, Event, Barrier, BrokenBarrierError
# plt.switch_backend('agg') # for thread safe operations... # plt.switch_backend('agg') # for thread safe operations...
...@@ -408,9 +408,13 @@ class OhmPiHardware: ...@@ -408,9 +408,13 @@ class OhmPiHardware:
kwargs.update({'elec_dict': elec_dict, 'state': state}) kwargs.update({'elec_dict': elec_dict, 'state': state})
mux_workers[idx] = Thread(target=self.mux_boards[mux].switch, kwargs=kwargs) mux_workers[idx] = Thread(target=self.mux_boards[mux].switch, kwargs=kwargs)
mux_workers[idx].start() mux_workers[idx].start()
self.mux_barrier.wait() try:
for mux_worker in mux_workers: self.mux_barrier.wait()
mux_worker.join() for mux_worker in mux_workers:
mux_worker.join()
except BrokenBarrierError:
self.exec_logger.warning('Switching aborted')
status = False
else: else:
self.exec_logger.error( self.exec_logger.error(
f'Unable to switch {state} electrodes: number of electrodes and number of roles do not match!') f'Unable to switch {state} electrodes: number of electrodes and number of roles do not match!')
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment