f56b088643
Base Image Build / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
26 lines
875 B
Python
26 lines
875 B
Python
import threading
|
|
|
|
lock = threading.Lock()
|
|
# Dictionary to track usage: {account_id: current_usage}
|
|
active_streams_map = {}
|
|
|
|
def increment_stream_count(account):
|
|
with lock:
|
|
current_usage = active_streams_map.get(account.id, 0)
|
|
current_usage += 1
|
|
active_streams_map[account.id] = current_usage
|
|
account.active_streams = current_usage
|
|
account.save(update_fields=['active_streams'])
|
|
|
|
def decrement_stream_count(account):
|
|
with lock:
|
|
current_usage = active_streams_map.get(account.id, 0)
|
|
if current_usage > 0:
|
|
current_usage -= 1
|
|
if current_usage == 0:
|
|
del active_streams_map[account.id]
|
|
else:
|
|
active_streams_map[account.id] = current_usage
|
|
account.active_streams = current_usage
|
|
account.save(update_fields=['active_streams'])
|