ACIL FM
Dark
Refresh
Current DIR:
/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk
/
opt
imunify360
venv
lib
python3.11
site-packages
sentry_sdk
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
integrations
-
chmod
Open
Rename
Delete
__pycache__
-
chmod
Open
Rename
Delete
api.py
4.69 MB
chmod
View
DL
Edit
Rename
Delete
attachments.py
1.75 MB
chmod
View
DL
Edit
Rename
Delete
client.py
14.03 MB
chmod
View
DL
Edit
Rename
Delete
consts.py
3.5 MB
chmod
View
DL
Edit
Rename
Delete
debug.py
1.11 MB
chmod
View
DL
Edit
Rename
Delete
envelope.py
8.17 MB
chmod
View
DL
Edit
Rename
Delete
hub.py
21.35 MB
chmod
View
DL
Edit
Rename
Delete
py.typed
0 B
chmod
View
DL
Edit
Rename
Delete
scope.py
15.62 MB
chmod
View
DL
Edit
Rename
Delete
serializer.py
15.92 MB
chmod
View
DL
Edit
Rename
Delete
sessions.py
7.67 MB
chmod
View
DL
Edit
Rename
Delete
tracing.py
25.24 MB
chmod
View
DL
Edit
Rename
Delete
transport.py
11.48 MB
chmod
View
DL
Edit
Rename
Delete
utils.py
26.26 MB
chmod
View
DL
Edit
Rename
Delete
worker.py
3.87 MB
chmod
View
DL
Edit
Rename
Delete
_compat.py
2.3 MB
chmod
View
DL
Edit
Rename
Delete
_functools.py
2.22 MB
chmod
View
DL
Edit
Rename
Delete
_queue.py
8.21 MB
chmod
View
DL
Edit
Rename
Delete
_types.py
1.26 MB
chmod
View
DL
Edit
Rename
Delete
__init__.py
854 B
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/worker.py
import os import threading from time import sleep, time from sentry_sdk._compat import check_thread_support from sentry_sdk._queue import Queue, Full from sentry_sdk.utils import logger from sentry_sdk._types import MYPY if MYPY: from typing import Any from typing import Optional from typing import Callable _TERMINATOR = object() class BackgroundWorker(object): def __init__(self, queue_size=30): # type: (int) -> None check_thread_support() self._queue = Queue(queue_size) # type: Queue self._lock = threading.Lock() self._thread = None # type: Optional[threading.Thread] self._thread_for_pid = None # type: Optional[int] @property def is_alive(self): # type: () -> bool if self._thread_for_pid != os.getpid(): return False if not self._thread: return False return self._thread.is_alive() def _ensure_thread(self): # type: () -> None if not self.is_alive: self.start() def _timed_queue_join(self, timeout): # type: (float) -> bool deadline = time() + timeout queue = self._queue queue.all_tasks_done.acquire() try: while queue.unfinished_tasks: delay = deadline - time() if delay <= 0: return False queue.all_tasks_done.wait(timeout=delay) return True finally: queue.all_tasks_done.release() def start(self): # type: () -> None with self._lock: if not self.is_alive: self._thread = threading.Thread( target=self._target, name="raven-sentry.BackgroundWorker" ) self._thread.setDaemon(True) self._thread.start() self._thread_for_pid = os.getpid() def kill(self): # type: () -> None """ Kill worker thread. Returns immediately. Not useful for waiting on shutdown for events, use `flush` for that. """ logger.debug("background worker got kill request") with self._lock: if self._thread: try: self._queue.put_nowait(_TERMINATOR) except Full: logger.debug("background worker queue full, kill failed") self._thread = None self._thread_for_pid = None def flush(self, timeout, callback=None): # type: (float, Optional[Any]) -> None logger.debug("background worker got flush request") with self._lock: if self.is_alive and timeout > 0.0: self._wait_flush(timeout, callback) logger.debug("background worker flushed") def _wait_flush(self, timeout, callback): # type: (float, Optional[Any]) -> None initial_timeout = min(0.1, timeout) if not self._timed_queue_join(initial_timeout): pending = self._queue.qsize() logger.debug("%d event(s) pending on flush", pending) if callback is not None: callback(pending, timeout) self._timed_queue_join(timeout - initial_timeout) def submit(self, callback): # type: (Callable[[], None]) -> None self._ensure_thread() try: self._queue.put_nowait(callback) except Full: logger.debug("background worker queue full, dropping event") def _target(self): # type: () -> None while True: callback = self._queue.get() try: if callback is _TERMINATOR: break try: callback() except Exception: logger.error("Failed processing job", exc_info=True) finally: self._queue.task_done() sleep(0)
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply