
    xj!                         U d Z ddlZddlZ ej                    Z e            Zeej                 ed<   da	dde
ddfdZdej        fdZd	ej        ddfd
ZdS )zELightweight in-process invalidation events for session sidebar state.    N_SESSION_EVENTS_SUBSCRIBERSsession_changedreasonreturnc                    t           5  t          dz  adt          | d}t          t                    }ddd           n# 1 swxY w Y   |D ]}	 |                    |           # t
          j        $ rZ 	 |                                 n# t
          j        $ r Y nw xY w	 |                    |           n# t
          j        $ r Y nw xY wY w xY wdS )z@Notify connected browsers that the session sidebar may be stale.   sessions_changed)typeversionr   N)	_SESSION_EVENTS_LOCK_SESSION_EVENTS_VERSIONlistr   
put_nowaitqueueFull
get_nowaitEmpty)r   payloadsubscribersqs       5/Users/bertmahoney/hermes-webui/api/session_events.pypublish_session_list_changedr      sU    
 8 81$&.
 

 6778 8 8 8 8 8 8 8 8 8 8 8 8 8 8   
	LL!!!!z 	 	 	;   W%%%%:   	 si   *>AAA$$C4B	C	BCBCB54C5CCCCCc                      t          j        d          } t          5  t                              |            d d d            n# 1 swxY w Y   | S )Nr   )maxsize)r   Queuer   r   addr   s    r   subscribe_session_eventsr   $   s    [+++A	 + +#''***+ + + + + + + + + + + + + + +Hs   AAAr   c                 z    t           5  t                              |            d d d            d S # 1 swxY w Y   d S )N)r   r   discardr   s    r   unsubscribe_session_eventsr!   +   s    	 / /#++A.../ / / / / / / / / / / / / / / / / /s   044)r   )__doc__r   	threadingLockr   setr   r   __annotations__r   strr   r   r!        r   <module>r*      s    K K K     %y~'' 03 S- 5 5 5   T    2%+    /%+ /$ / / / / / /r)   