Files
Solax/myenv/lib/python3.12/site-packages/reactivex/subject/innersubscription.py
2024-09-13 09:46:28 +02:00

27 lines
703 B
Python

import threading
from typing import TYPE_CHECKING, Optional, TypeVar
from .. import abc
if TYPE_CHECKING:
from .subject import Subject
_T = TypeVar("_T")
class InnerSubscription(abc.DisposableBase):
def __init__(
self, subject: "Subject[_T]", observer: Optional[abc.ObserverBase[_T]] = None
):
self.subject = subject
self.observer = observer
self.lock = threading.RLock()
def dispose(self) -> None:
with self.lock:
if not self.subject.is_disposed and self.observer:
if self.observer in self.subject.observers:
self.subject.observers.remove(self.observer)
self.observer = None