81cdbbca95
- All ClientManager methods (add_client, get_client, remove_client, get_wait_time, is_server_full, is_client_timeout) now protected by a threading.Lock - cleanup() called outside the lock to avoid holding it during I/O - is_server_full() computes wait time inline under lock instead of calling get_wait_time() to avoid nested lock acquisition - Added concurrent thread safety tests for add/remove and get operations