@@ -102,9 +102,11 @@ def __init__(
102102
103103 self .is_started = asyncio .Event ()
104104
105- self .loop = asyncio . get_event_loop ()
105+ self .loop = None
106106
107107 async def start (self ):
108+ self .loop = asyncio .get_running_loop ()
109+
108110 while True :
109111 self .connection = self .client .connection_factory (
110112 dc_id = self .dc_id ,
@@ -120,6 +122,9 @@ async def start(self):
120122
121123 self .recv_task = self .loop .create_task (self .recv_worker ())
122124
125+ if hasattr (self .recv_task , "_log_destroy_pending" ):
126+ self .recv_task ._log_destroy_pending = False
127+
123128 await self .send (raw .functions .Ping (ping_id = 0 ), timeout = self .START_TIMEOUT )
124129
125130 if not self .is_cdn :
@@ -142,6 +147,9 @@ async def start(self):
142147
143148 self .ping_task = self .loop .create_task (self .ping_worker ())
144149
150+ if hasattr (self .ping_task , "_log_destroy_pending" ):
151+ self .ping_task ._log_destroy_pending = False
152+
145153 log .info ("Session initialized: Layer %s" , layer )
146154 log .info ("Device: %s - %s" , self .client .device_model , self .client .app_version )
147155 log .info ("System: %s (%s)" , self .client .system_version , self .client .lang_code )
@@ -185,6 +193,8 @@ async def stop(self):
185193
186194 log .info ("Session stopped" )
187195
196+ self .loop = None
197+
188198 async def restart (self ):
189199 now = datetime .now ()
190200 if (
@@ -209,7 +219,10 @@ async def handle_packet(self, packet):
209219 )
210220 except ValueError as e :
211221 log .debug (e )
212- self .loop .create_task (self .restart ())
222+ restart_task = self .loop .create_task (self .restart ())
223+
224+ if hasattr (restart_task , "_log_destroy_pending" ):
225+ restart_task ._log_destroy_pending = False
213226 return
214227
215228 messages = (
@@ -271,7 +284,10 @@ async def handle_packet(self, packet):
271284 msg_id = msg .body .msg_id
272285 else :
273286 if self .client is not None :
274- self .loop .create_task (self .client .handle_updates (msg .body ))
287+ update_task = self .loop .create_task (self .client .handle_updates (msg .body ))
288+
289+ if hasattr (update_task , "_log_destroy_pending" ):
290+ update_task ._log_destroy_pending = False
275291
276292 if msg_id in self .results :
277293 self .results [msg_id ].value = getattr (msg .body , "result" , msg .body )
@@ -305,7 +321,10 @@ async def ping_worker(self):
305321 ), False
306322 )
307323 except OSError :
308- self .loop .create_task (self .restart ())
324+ restart_task = self .loop .create_task (self .restart ())
325+
326+ if hasattr (restart_task , "_log_destroy_pending" ):
327+ restart_task ._log_destroy_pending = False
309328 break
310329 except RPCError :
311330 pass
@@ -334,11 +353,17 @@ async def recv_worker(self):
334353 )
335354
336355 if self .is_started .is_set ():
337- self .loop .create_task (self .restart ())
356+ restart_task = self .loop .create_task (self .restart ())
357+
358+ if hasattr (restart_task , "_log_destroy_pending" ):
359+ restart_task ._log_destroy_pending = False
338360
339361 break
340362
341- self .loop .create_task (self .handle_packet (packet ))
363+ packet_task = self .loop .create_task (self .handle_packet (packet ))
364+
365+ if hasattr (packet_task , "_log_destroy_pending" ):
366+ packet_task ._log_destroy_pending = False
342367
343368 log .info ("NetworkTask stopped" )
344369
0 commit comments