Skip to content

Commit adfc027

Browse files
committed
use local property instead of thread name
1 parent 612e042 commit adfc027

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

scratchattach/eventhandlers/cloud_requests.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""CloudRequests class (threading.Event version)"""
22
from __future__ import annotations
33

4-
from threading import Thread, Event, current_thread
4+
from threading import Thread, Event, local
55
import time
66
import random
77
import traceback
@@ -16,6 +16,11 @@
1616
from scratchattach.cloud import _base
1717
from .cloud_events import CloudEvents
1818

19+
class RequestHandlerThreadInfo(local):
20+
request_id: str = ""
21+
22+
request_handler_thread_info = RequestHandlerThreadInfo()
23+
1924
class 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

Comments
 (0)