@@ -59,20 +59,20 @@ def set_delay(self, delay):
59
59
self .delay = delay / 1000.0
60
60
61
61
def push (self , event :UpdateEvent ):
62
+ from .odoo_language_server import OdooLanguageServer
62
63
with self .lock :
63
64
if self .panic_mode :
64
65
#do no add anything, but update time of the last event
65
66
if self .queue :
66
67
self .queue [- 1 ].time = time .time ()
67
68
return
68
- self .queue = [e for e in self .queue if e .path != event .path ]
69
+ self .queue = [e for e in self .queue if e .path != event .path ] #TODO write this with a set
69
70
if len (self .queue ) > 10 :
70
71
self .panic_mode = True
71
72
event .time = time .time ()
72
73
self .queue .append (event )
73
74
if self .thread is None :
74
- self .thread = threading .Timer (self .delay , self .process )
75
- self .thread .start ()
75
+ self .thread = OdooLanguageServer .get ().launch_thread_timer (target = self .process , args = (), delay = self .delay )
76
76
77
77
def clear (self ):
78
78
with self .lock :
@@ -85,8 +85,7 @@ def process(self):
85
85
self .thread = None
86
86
if self .queue :
87
87
if self .queue [- 1 ].time + self .delay > time .time ():
88
- self .thread = threading .Timer (self .queue [- 1 ].time + self .delay - time .time (), self .process )
89
- self .thread .start ()
88
+ self .thread = odoo_server .launch_thread_timer (target = self .process , args = (), delay = self .queue [- 1 ].time + self .delay - time .time ())
90
89
return
91
90
if self .panic_mode :
92
91
Odoo .reload_database (odoo_server )
@@ -100,5 +99,4 @@ def process(self):
100
99
if acquired :
101
100
Odoo .get ().process_rebuilds (odoo_server )
102
101
else :
103
- self .thread = threading .Timer (1.0 , self .process )
104
- self .thread .start ()
102
+ self .thread = odoo_server .launch_thread_timer (target = self .process , args = (self ,), delay = 1.0 )
0 commit comments