diff --git a/main.py b/main.py index e6aabc57..a5248f93 100644 --- a/main.py +++ b/main.py @@ -333,10 +333,11 @@ def _fetch_folder_rules(folder_id: str): try: data = _api_get(client, f"{API_BASE}/{profile_id}/rules/{folder_id}").json() folder_rules = data.get("body", {}).get("rules", []) - with all_rules_lock: - for rule in folder_rules: - if rule.get("PK"): - all_rules.add(rule["PK"]) + # Optimization: Extract PKs locally to minimize lock contention + local_pks = {rule["PK"] for rule in folder_rules if rule.get("PK")} + if local_pks: + with all_rules_lock: + all_rules.update(local_pks) except httpx.HTTPError: pass except Exception as e: