import threading class SessionManager: def __init__(self, sess): self.sess = sess self._lock = threading.Lock() self._running_count = 0 # wie viele Devices wollen gerade streamen? def start(self): with self._lock: if self._running_count == 0: # Erster „Kunde“ → Session-Stream starten self.sess.start(0) # 0 = endlos self._running_count += 1 return self._running_count def stop(self): with self._lock: if self._running_count > 0: self._running_count -= 1 if self._running_count == 0: # Letzter „Kunde“ ist weg → Session beenden self.sess.end() return self._running_count def running_devices(self): with self._lock: return self._running_count