/opt/cloudlinux/venv/lib/python3.11/site-packages/xray/agent/__pycache__
NameSizeModeActions
daemon.cpython-311.pyc382060644editdlrm
executor.cpython-311.pyc36830644editdlrm
fault_detector.cpython-311.pyc125810644editdlrm
__init__.cpython-311.pyc2350644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/agent/__pycache__/executor.cpython-311.pyc (3683B)
§ ð ˜j“ãól—ddlZddlZddlmZmZddlmZeje¦«Z Gd„d¦«Z dS)éN)ÚThreadPoolExecutorÚFuture)ÚBoundedSemaphorecó>—eZdZdZd„Zd„Zd„Zd„Zd d„Zde fd „Z d S) ÚBoundedThreadExecutora9 BoundedExecutor behaves as a ThreadPoolExecutor which will block on calls to submit() once the limit given as "bound" work items are queued for execution. While processing incoming connections, we need two things: - the server must be able to process incoming connections in multiple threads (one for each client) because we spend some time trying to redirect incoming data to our servers - the server must have some limit in order not to create new threads indefinitely This executor has two limits: :param max_workers - which limits number of simultaneously running threads :param maxqueuesize - which limits number of tasks to wait for the available thread When both max_workers and maxqueuesize overflow, .submit function raises queue.Full exception. có^—t|¬¦«|_t||z¦«|_dS)N)Ú max_workers)rÚexecutorrÚ semaphore)ÚselfÚ maxqueuesizer s úJ/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/agent/executor.pyÚ__init__zBoundedThreadExecutor.__init__#s,€Ý*°{ÐCÑCÔCˆŒ Ý)¨,¸Ñ*DÑEÔEˆŒˆˆócó—|S©N©)r s rÚ __enter__zBoundedThreadExecutor.__enter__'s€Øˆ rcó.—| ¦«dSr)Úshutdown)r Úexc_typeÚexc_valÚexc_tbs rÚ__exit__zBoundedThreadExecutor.__exit__*s€Ø � Š ‰Œˆˆˆrcóø—|j d¬¦«}|s tj‚ |jj|g|¢Ri|¤Ž}| |j¦«|S#|j ¦«‚xYw)NF)Úblocking) r ÚacquireÚqueueÚFullr ÚsubmitÚadd_done_callbackÚ_on_future_completeÚrelease)r ÚfnÚargsÚkwargsÚsuccessÚfutures rr zBoundedThreadExecutor.submit-s‘€Ø”.×(Ò(°%Ð(Ñ8Ô8ˆØð Ý”*Ð ð Ø)�T”]Ô)¨"Ð>¨tÐ>Ð>Ð>°vÐ>Ð>ˆFð × $Ò $ TÔ%=Ñ >Ô >Ð >؈Møð  Ø ŒN× "Ò "Ñ $Ô $Ð $Ø øøøs «AÁA9Tcó:—|j |¦«dSr)r r)r Úwaits rrzBoundedThreadExecutor.shutdown;s€Ø Œ ×Ò˜tÑ$Ô$Ð$Ð$Ð$rÚxcó˜—|j ¦«| ¦«rt d¦«dSdS)NzFuture completed with exception)r r#Ú exceptionÚlogger)r r+s rr"z)BoundedThreadExecutor._on_future_complete>sN€Ø Œ×ÒÑ Ô Ð à �;Š;‰=Œ=ð @Ý × Ò Ð>Ñ ?Ô ?Ð ?Ð ?Ð ?ð @ð @rN)T) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr rrr"rrrrrs“€€€€€ððð&FðFðFððððððð ð ð ð%ð%ð%ð%ð@ Vð@ð@ð@ð@ð@ð@rr) ÚloggingrÚconcurrent.futuresrrÚ threadingrÚ getLoggerr/r.rrrrúr7s‘ðà€€€ð  € € € Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø&Ð&Ð&Ð&Ð&Ð&à ˆÔ ˜8Ñ $Ô $€ð3@ð3@ð3@ð3@ð3@ñ3@ô3@ð3@ð3@ð3@r