U vi @ s> d dl mZ d dlmZmZ d dlmZ G dd dejZdS ) )RLock)AnyList)abcc s e Zd ZdZed fddZejddddZeje dd d Z dddd ZddddZeje dddZ eej dddZedddZeedddZ ZS )CompositeDisposablezIRepresents a group of disposable resources that are disposed together)argsc sH |rt |d tr|d | _n t|| _d| _t | _tt| d S )Nr F) isinstancelist disposableis_disposedr locksuperr __init__)selfr __class__ Y/opt/alt/python38/lib/python3.8/site-packages/reactivex/disposable/compositedisposable.pyr s zCompositeDisposable.__init__N)itemreturnc C s> d}| j | jrd}n| j| W 5 Q R X |r:| dS )zAdds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed Args: item: Disposable to add.FTN)r r r appenddisposer r Zshould_disposer r r add s zCompositeDisposable.addc C sJ | j r dS d}| j || jkr0| j| d}W 5 Q R X |rF| |S )z_Removes and disposes the first occurrence of a disposable from the CompositeDisposable.FT)r r r remover r r r r r &