# Wrappers

Disposable wrappers enabling `using` pattern for synchronization primitives.

## Key Files

- **`ReleaseWrapperMutex.cs`** — `IDisposable` wrapper for `Mutex`. Calls `ReleaseMutex()` on dispose. Used via `mutex.UseWaitOne()`.
- **`ReleaseWrapperSemaphore.cs`** — `IDisposable` wrapper for `SemaphoreSlim`. Calls `Release()` on dispose. Used via `semaphore.UseWait()` / `UseWaitAsync()`.

Both are idempotent (safe to dispose multiple times via `_isDisposed` flag).
