""" virtual_gpu_driver/src/sync.py Synchronization primitives: barriers, events, atomics for parallel tasks. """ import threading class Barrier: def __init__(self, parties): self.barrier = threading.Barrier(parties) def wait(self): self.barrier.wait() class Event: def __init__(self): self.event = threading.Event() def set(self): self.event.set() def wait(self, timeout=None): self.event.wait(timeout) def clear(self): self.event.clear() class AtomicInt: def __init__(self, value=0): self.value = value self.lock = threading.Lock() def add(self, delta): with self.lock: self.value += delta return self.value def compare_and_swap(self, expected, new): with self.lock: if self.value == expected: self.value = new return True return False def get(self): with self.lock: return self.value