In my code, it would be convenient if my thread calls .WaitOne() more than once before calling .ReleaseMutex().
And vice versa: Calling .ReleaseMutex() a few times before restarting a loop which begins with call to .WaitOne().
Some operating systems / compiler combinations allow this. Some don't.