Monitors - problems?
The process(es) waiting for a signal and the one that may be issuing the signal are using the same monitor. In this case, concurrency is hampered.
Solution: Introduce another monitor operation (method) CVnotify(C) which will move the waiting process to the Ready queue and resume this process as soon as the current process is done. There is also a CVbroadcast(C) to notify all the processes waiting on the condition.
Possibility of starvation if a CVsignal is left out. Solution: watchdog timer.