Files
letta-server/letta/services/per_agent_lock_manager.py
2024-12-02 17:46:48 -08:00

19 lines
546 B
Python

import threading
from collections import defaultdict
class PerAgentLockManager:
"""Manages per-agent locks."""
def __init__(self):
self.locks = defaultdict(threading.Lock)
def get_lock(self, agent_id: str) -> threading.Lock:
"""Retrieve the lock for a specific agent_id."""
return self.locks[agent_id]
def clear_lock(self, agent_id: str):
"""Optionally remove a lock if no longer needed (to prevent unbounded growth)."""
if agent_id in self.locks:
del self.locks[agent_id]