11.5.9

 avatar
unknown
csharp
2 years ago
510 B
1
Indexable
using System.Threading;

public class CustomMonitor
{
    private readonly object _lock = new object();
    private bool _isLocked;

    public void Enter()
    {
        lock (_lock)
        {
            while (_isLocked)
            {
                Monitor.Wait(_lock);
            }
            _isLocked = true;
        }
    }

    public void Exit()
    {
        lock (_lock)
        {
            _isLocked = false;
            Monitor.PulseAll(_lock);
        }
    }
}