estoy buscando por inet algun tutorial sobre como usar monitores en c++ pero no encuentro ninguno muy bueno. Algunos hablan sobre una clase de .net pero estoy mas interesado en monitores en general, sobretodo para compilar en linux.
A ver si alguno conoce algun buen tuto :P.
bueno, parece ser que la uica opcion es implementar una clase monitor con semaforos.
Alguno tiene la clase ya hecha? :P
Vamos a ver. Hacer un monitor es muy fácil en C++ usando la biblioteca Boost (http://www.boost.org/).
Lo primero, tienes tu clase C++ que quieres convertirla en monitor.
Le pontes un mutex en un atributo protegido/privado.
Luego, en cada función que quieras sincronizar (en el caso de un monitor puro son todas) le haces un lock al monitor. Con Boost ni te tienes que preocupar en quitar el lock porque es RAII (http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization).
Finalmente, si ves que un método de tu clase llama a otro que hace otro lock en tu propia clase, has de tener precaución. O bien pones el mutex recursivo, o bien refactorizas la parte común del código a otro método protegido/privado sin lock.