File tree Expand file tree Collapse file tree 2 files changed +11
-21
lines changed
Expand file tree Collapse file tree 2 files changed +11
-21
lines changed Original file line number Diff line number Diff line change @@ -17,9 +17,19 @@ class BaseEngine:
1717 def __init__ (self , sm : "StateMachine" , rtc : bool = True ):
1818 self .sm : StateMachine = proxy (sm )
1919 self ._external_queue : deque = deque ()
20+ self ._processing = Lock ()
2021 self ._sentinel = object ()
2122 self ._rtc = rtc
22- self ._processing = Lock ()
23+
24+ def __getstate__ (self ) -> dict :
25+ state = self .__dict__ .copy ()
26+ del state ["_external_queue" ]
27+ del state ["_processing" ]
28+ del state ["sm" ]
29+ return state
30+
31+ def __setstate__ (self , state : dict ) -> None :
32+ self .__dict__ .update (state )
2333
2434 def put (self , trigger_data : TriggerData ):
2535 """Put the trigger on the queue without blocking the caller."""
Original file line number Diff line number Diff line change 11import warnings
2- from copy import deepcopy
32from inspect import isawaitable
4- from threading import Lock
53from typing import TYPE_CHECKING
64from typing import Any
75from typing import Dict
@@ -129,24 +127,6 @@ def __repr__(self):
129127 f"current_state={ current_state_id !r} )"
130128 )
131129
132- def __deepcopy__ (self , memo ):
133- deepcopy_method = self .__deepcopy__
134- lock = self ._engine ._processing
135- with lock :
136- self .__deepcopy__ = None
137- self ._engine ._processing = None
138- try :
139- cp = deepcopy (self , memo )
140- cp ._engine ._processing = Lock ()
141- finally :
142- self .__deepcopy__ = deepcopy_method
143- cp .__deepcopy__ = deepcopy_method
144- self ._engine ._processing = lock
145- cp ._callbacks .clear ()
146- cp ._register_callbacks ([])
147- cp .add_listener (* cp ._listeners .keys ())
148- return cp
149-
150130 def __getstate__ (self ):
151131 state = self .__dict__ .copy ()
152132 state ["_rtc" ] = self ._engine ._rtc
You can’t perform that action at this time.
0 commit comments