@@ -59,20 +59,20 @@ def set_delay(self, delay):
5959 self .delay = delay / 1000.0
6060
6161 def push (self , event :UpdateEvent ):
62+ from .odoo_language_server import OdooLanguageServer
6263 with self .lock :
6364 if self .panic_mode :
6465 #do no add anything, but update time of the last event
6566 if self .queue :
6667 self .queue [- 1 ].time = time .time ()
6768 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
6970 if len (self .queue ) > 10 :
7071 self .panic_mode = True
7172 event .time = time .time ()
7273 self .queue .append (event )
7374 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 )
7676
7777 def clear (self ):
7878 with self .lock :
@@ -85,8 +85,7 @@ def process(self):
8585 self .thread = None
8686 if self .queue :
8787 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 ())
9089 return
9190 if self .panic_mode :
9291 Odoo .reload_database (odoo_server )
@@ -100,5 +99,4 @@ def process(self):
10099 if acquired :
101100 Odoo .get ().process_rebuilds (odoo_server )
102101 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