Files
StarPilot/starpilot/third_party/reactivex/subject/innersubscription.py
T
firestar5683 3d8af2361e Rename
2026-03-27 18:05:44 -05: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