Are critical section locks made possible by disabling interrupts in Windows? If that is the case, then a thread cannot be preempted while it is in the middle of a critical section.
But if that were the case, i.e. if a thread could not be preempted while executing a critical section, that that would make the whole point of pulsing a monitor somewhat less important than it would be if the thread could be asked to evacuate CPU even while it was in the middle of a critical section.
So, my real question(s) are:
How are monitors implemented in Windows?
Can a thread be preempted while it is in the middle of a critical section?
Windows is designed so that threads, even when running in kernel mode, are always preemptible and always interruptible. So critical sections are certainly not implemented by disabling interrupts and do not prevent preemption.
In fact, if a user-mode thread could block interrupts and/or preemption, it would be trivial for a user-mode process to inadvertently crash the entire system. So no modern operating system behaves in the way you are suggesting.
In Windows, monitors are usually implemented using condition variables, which are provided as a primitive by the thread scheduler. I believe this is also true of POSIX.