
    iy                         d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
 ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZmZmZ  G d
 de      Zy)    )print_functionunicode_literalsN   )ANYWIN)AuthSrv)	BrokerCliExceptionalQueue
NotExQueue)ramdisk_chk)HttpSrv)FAKE_MPDaemonHMaccasc                   X     e Zd ZdZ fdZd ZddZddZddZd Z	d	 Z
dd
dZ xZS )MpWorkerzone single mp instancec                 t   t         t        |           || _        || _        || _        || _        |j                  r|j                  s| j                  n| j                  | _        i | _        t        j                         | _        t        j                         | _        t"        slt$        j&                  t$        j(                  g}t*        s|j-                  t$        j.                         |D ]"  }t%        j$                  || j0                         $ t3        |d d      | _        t7        | j4                         t9        t:        j<                  j?                  | j
                  j@                  jB                  d      d      | _"        tG        | |      | _$        tK        | jL                  d      j?                          y )NFiphash   zmpw-main)'superr   __init__q_pendq_yieldargsnqlo_log_disabled_log_enabledlogretpend	threadingLockretpend_mutexmutexr   signalSIGINTSIGTERMr   appendSIGUSR1signal_handlerr   asrvr   r   ospathjoinEcfgr   r   httpsrvr   main)selfr   r   r   r   sigssig	__class__s          G/home/ubuntu/myenv/lib/python3.12/site-packages/copyparty/broker_mpw.pyr   zMpWorker.__init__   s0    	h&(	)-4%%TEVEV&^^-^^%
 MM6>>2DFNN+ 8c4#6#678 D$.	DII bggll499;;??HEqItQ' 	tyy*%**,    c                      y N )r3   r5   frames      r7   r*   zMpWorker.signal_handler@   s    r8   r   c                 F    | j                   j                  dd|||gf       y )Nr   r   )r   putr3   srcmsgcs       r7   r   zMpWorker._log_enabledD   s!    !US#qM23r8   c                      y r:   r;   r?   s       r7   r   zMpWorker._log_disabledG   s    r8   c                 F    | j                  d| j                  fz  ||       y )Nzmp%d)r   r   )r3   rA   rB   s      r7   logwzMpWorker.logwJ   s    466)#S!,r8   c                 >   	 | j                   j                         \  }}}|dk(  rB| j                  5  | j                  j	                  |      }d d d        j                  |       f|dk(  rA| j                  j                          | j                  d       t        j                  d       y |dk(  rS| j                  d       | j                  j                          t        | j                         | j                  d       |dk(  r;| j                  j                  5  | j                  j                          d d d        D| }|j!                  d	      D ]  }t#        ||      }  || }|r| j%                  d||
       # 1 sw Y   ;xY w# 1 sw Y   YxY w)Nretqshutdownzok byer   reloadzmpw.asrv reloadingzmpw.asrv reloadedreload_sessions.retq_id)r   getr#   r    popr>   r1   rH   rE   sysexitr+   rI   r   r$   load_sessionssplitgetattrsay)r3   rM   destr   rG   objnodervs           r7   r2   zMpWorker.mainM   sb   "&++//"3GT4v~'' 5<<++G4D5 z!%%'		(#x		./		  "DII&		-.((YY__ .II++-.C

3 )c4() dBW5G 
5 5(. .s   F FFFc                     t        d      }t        |      }| j                  5  || j                  |<   d d d        | j                  j                  ||t        |      f       |S # 1 sw Y   2xY w)Nr   )r	   idr#   r    r   r>   list)r3   rV   r   rG   rM   s        r7   askzMpWorker.asks   se    "T( 	)$(DLL!	) 	'4d45		) 	)s   A$$A-rL   c                R    | j                   j                  ||t        |      f       y r:   )r   r>   r\   )r3   rV   rM   r   s       r7   rU   zMpWorker.say|   s    '4d45r8   )r   )__name__
__module____qualname____doc__r   r*   r   r   rE   r2   r]   rU   __classcell__)r6   s   @r7   r   r      s:     (-T4-$6L *+ 6 6r8   r   )
__future__r   r   argparser,   r%   rP   r!   queuer   r   authsrvr   broker_utilr   r	   r
   fsutilr   r1   r   utilr   r   r   r   r;   r8   r7   <module>rk      s@    7  	  
     @ @   * *j6y j6r8   