Skip to content
Snippets Groups Projects
Commit 23d4a0a1 authored by Samuel GARNIER's avatar Samuel GARNIER
Browse files

Protect thread by lock

parent 9d398373
No related branches found
No related tags found
No related merge requests found
......@@ -209,6 +209,14 @@ class DG_PY_FOFBTool(Device):
"""Initialises the attributes and properties of the DG_PY_FOFBTool."""
Device.init_device(self)
#----- PROTECTED REGION ID(DG_PY_FOFBTool.init_device) ENABLED START -----#
self.lock = threading.Lock()
if not self.lock.acquire(False):
self.error_stream("Device is running, skiping command")
return
self.set_state(tango.DevState.RUNNING)
self.info_stream("FofbTool {}".format(FofbTool.__version__))
......@@ -224,6 +232,7 @@ class DG_PY_FOFBTool(Device):
self._include_lbp= False
self.set_state(tango.DevState.ON)
self.lock.release()
#----- PROTECTED REGION END -----# // DG_PY_FOFBTool.init_device
......@@ -347,7 +356,7 @@ class DG_PY_FOFBTool(Device):
:return:None
"""
if self.dev_state() == tango.DevState.RUNNING:
if not self.lock.acquire(False):
self.error_stream("Device is running, skiping command")
return
......@@ -367,6 +376,7 @@ class DG_PY_FOFBTool(Device):
self.d_status["nodes"]="FofbNode: stopped"
self.set_state(tango.DevState.ON)
self.lock.release()
T = threading.Thread(target=target,)
......@@ -385,7 +395,8 @@ class DG_PY_FOFBTool(Device):
:return:None
"""
if self.dev_state() == tango.DevState.RUNNING:
if not self.lock.acquire(False):
self.error_stream("Device is running, skiping command")
return
......@@ -411,6 +422,7 @@ class DG_PY_FOFBTool(Device):
self.d_status["nodes"]="FofbNode: started"
self.set_state(tango.DevState.ON)
self.lock.release()
T = threading.Thread(target=target,)
......@@ -458,7 +470,7 @@ class DG_PY_FOFBTool(Device):
:return:None
"""
if self.dev_state() == tango.DevState.RUNNING:
if not self.lock.acquire(False):
self.error_stream("Device is running, skiping command")
return
......@@ -478,6 +490,7 @@ class DG_PY_FOFBTool(Device):
self.d_status["align"]="FA Align: OK"
self.set_state(tango.DevState.ON)
self.lock.release()
T = threading.Thread(target=target, args=(cn, ))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment