11"""CloudRequests class (threading.Event version)"""
22from __future__ import annotations
33
4- from threading import Thread , Event , current_thread
4+ from threading import Thread , Event , local
55import time
66import random
77import traceback
1616from scratchattach .cloud import _base
1717from .cloud_events import CloudEvents
1818
19+ class RequestHandlerThreadInfo (local ):
20+ request_id : str = ""
21+
22+ request_handler_thread_info = RequestHandlerThreadInfo ()
23+
1924class ErrorInRequest (RuntimeWarning ):
2025 pass
2126
@@ -57,7 +62,7 @@ def __call__(self, received_request: ReceivedRequest):
5762 self .cloud_requests .call_event ("on_disabled_request" , [received_request ])
5863 return
5964 try :
60- current_thread (). name = received_request .request_id # Used by .get_requester() / .get_timestamp() as lookup key
65+ request_handler_thread_info . request_id = received_request .request_id # Used by .get_requester() / .get_timestamp() as lookup key
6166 output = self .on_call (* received_request .arguments )
6267 self .cloud_requests .request_outputs .append ({"receive" :received_request .timestamp , "request_id" : received_request .request_id , "output" :output , "priority" :self .response_priority })
6368 except ErrorWithMessage as e :
@@ -459,7 +464,7 @@ def get_requester(self):
459464 """
460465 Can be used inside a request to get the username that performed the request.
461466 """
462- activity = self .executed_requests [current_thread (). name ].activity
467+ activity = self .executed_requests [request_handler_thread_info . request_id ].activity
463468 if activity .user is None :
464469 activity .load_log_data ()
465470 return activity .user
@@ -468,14 +473,14 @@ def get_timestamp(self):
468473 """
469474 Can be used inside a request to get the timestamp of when the request was received.
470475 """
471- activity = self .executed_requests [current_thread (). name ].activity
476+ activity = self .executed_requests [request_handler_thread_info . request_id ].activity
472477 return activity .timestamp
473478
474479 def get_exact_timestamp (self ):
475480 """
476481 Can be used inside a request to get the exact timestamp of when the request was performed.
477482 """
478- activity = self .executed_requests [current_thread (). name ].activity
483+ activity = self .executed_requests [request_handler_thread_info . request_id ].activity
479484 activity .load_log_data ()
480485 return activity .timestamp
481486
0 commit comments