summaryrefslogtreecommitdiffstats
path: root/src/osmo_gsm_tester/event_loop.py
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-08-09 13:45:55 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2018-08-13 07:51:58 +0000
commit58603671c21b0af30d0d52fec862c5843c6e50d0 (patch)
treecb7f8b4fb0fca3e7895d8ffcab8c8a3cf91d1537 /src/osmo_gsm_tester/event_loop.py
parent6caa5c11674d8b0041939b3488c8d9a517edc805 (diff)
Cleanup of class scoped variables
After bug described in OS#3456 and fixed in last commit, let's categorize and place variables in its correct plac to avoid similar issus. We leave under the class keyword (class scoped variables) the attributes which are to be used as static class attributes. All other ones are initialized during __init__(). This way w avoid scenarios in which while using an object from an instance attribute we end up reading a class scoped variable which is shared among all instances. Change-Id: I5ad4cac34a9f49eaf42966c01c9c5a4d3f3e9dc8
Diffstat (limited to 'src/osmo_gsm_tester/event_loop.py')
-rw-r--r--src/osmo_gsm_tester/event_loop.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/osmo_gsm_tester/event_loop.py b/src/osmo_gsm_tester/event_loop.py
index 0f647c2..fe88ef4 100644
--- a/src/osmo_gsm_tester/event_loop.py
+++ b/src/osmo_gsm_tester/event_loop.py
@@ -23,10 +23,12 @@ from gi.repository import GLib, GObject
from . import log
class DeferredHandling:
- defer_queue = []
+
+ def __init__(self):
+ self.defer_queue = []
def handle_queue(self):
- while DeferredHandling.defer_queue:
+ while self.defer_queue:
handler, args, kwargs = self.defer_queue.pop(0)
handler(*args, **kwargs)
@@ -34,10 +36,10 @@ class DeferredHandling:
self.defer_queue.append((handler, args, kwargs))
class WaitRequest:
- timeout_ack = False
- condition_ack = False
def __init__(self, condition, condition_args, condition_kwargs, timeout, timestep):
+ self.timeout_ack = False
+ self.condition_ack = False
self.timeout_started = time.time()
self.timeout = timeout
self.condition = condition
@@ -53,12 +55,9 @@ class WaitRequest:
self.timeout_ack = True
class EventLoop:
- poll_funcs = []
- gloop = None
- gctx = None
- deferred_handling = None
def __init__(self):
+ self.poll_funcs = []
self.gloop = GLib.MainLoop()
self.gctx = self.gloop.get_context()
self.deferred_handling = DeferredHandling()