veg ddlZddlZddlZddlmZmZmZddlmZm Z ddl m Z ej dZ ded dfd Zded dfd Zded ed dfd ZdZdefdeeefded dfdZdS)N)UnionIterableCallable)switch_schedstatsno_xray_active_tasks)RequestProcessortoolssignumreturnc>td||dS)z/ Signal handler to log received signal zReceived sig: %i (%s)N)loggerinfor frames I/opt/cloudlinux/venv/lib64/python3.11/site-packages/ssa/internal/tools.pylog_on_receivers! KK'88888cJtd|ttd|t r*tdt dt jddS)zO Signal handler to dump collected statistics and switch off schedstats zReceived sig: %iz/Dumped successfully after %i signal, exiting...z0No X-Ray tasks running, switching schedstats offF)enabledrN)rrr flush_bufferrrsysexitrs rsigterm_receivedrs KK"F+++##%%% KKA6JJJ) FGGG%((((HQKKKKKr sighandlerc tj||td|dS#ttf$r'}td||Yd}~dSd}~wwxYw)z4 Register given sighandler for given signum z Registered %szSkipped %s because of %sN)signalrrOSError ValueError)r res rregister_a_signalr")s; fj))) OV,,,,, Z ;;; .:::::::::;s04A,A''A,cDttjtdS)z4 Register a dump handler for SIGTERM signal N)r"rSIGTERMrrrregister_sigtermr&4sfn&677777rsignalshandlerc|!tjD]}t||dSt|trt||dS|D]}t||dS)z Register given handler for given signal or range of signals If no signals given, add given handler for all available signals N)rSignalsr" isinstanceint)r'r(sigs rregister_signalsr.;s > , ,C c7 + + + + , , gs # # 0 gw / / / / / 0 0!#w//// 0 0r)loggingrrtypingrrrutilsrrmodules.processorr getLoggerrr,rrr"r&r.r%rrr4sC ,,,,,,,,,,::::::::000000  7 # #939$9999 S D    ;c;x;D;;;;8886:)700eCM20&0<@000000r