Thank you very much for your help.
It is not for running an application, its a Buffer class, that use a Monitor to solve Producer and Consumer problem, and the Monitor use a Semaphores for synchronisation, and the Semaphores use the Signal and Wait functions,
So when consumer ask for data to the Buffer it call the Semaphores and it call a Wait if the buffer is empty, and when the producer put data in de buffer it calls the Semaphores and it call Signal that wake up all the cascade process.
The problem is that it works with, a single Producer, single Consumer but it didn't work when you have some many instances of the buffer, Ex : The first instance of the SignalWait class is stopped forever by the second instance of it.

Thank you very much for your help, again.

Sebastian