]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/runnable.h
Se agregan un par de mutex porque el server se muere con segmentation fault
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / runnable.h
index 145a2316ebda83e74cdb58acb2bd08cdb53bee9d..cc3bb0ec16df90260b871e4608ec8966b0b6d55d 100644 (file)
@@ -52,12 +52,24 @@ namespace Server {
                        /// Thread en el cual correr la tarea.
                        Glib::Thread* thread;
 
-                       /// Indica si se debe frinalizar la tarea.
-                       bool stop;
-
                        /// Señal que indica que se finalizó la tarea.
                        SignalFinished finished;
 
+               protected:
+
+                       /**
+                        * Indica si se debe frinalizar la tarea.
+                        *
+                        * \todo Poner como privado y poner get() set() con locks.
+                        */
+                       bool stop;
+
+                       /**
+                        * Exclusión mutua.
+                        * Recurso usado para recibir la exclusividad sobre un recurso.
+                        */
+                       Glib::Mutex mutex;
+
                // Métodos.
 
                private:
@@ -79,7 +91,7 @@ namespace Server {
                        /**
                         * Destructor.
                         */
-                       virtual ~Runnable(void) {}
+                       virtual ~Runnable(void);
 
                        /**
                         * Constructor.
@@ -100,16 +112,15 @@ namespace Server {
                         * \param attach Si es true, la función no retorna hasta que no
                         *               finalice la tearea (no recomendable).
                         *
-                        * \see Para saber cuando la tarea fue finalizada puede utilizar
-                        *      la señal signal_finished().
+                        * \note Para saber cuando la tarea fue finalizada puede utilizar
+                        *       la señal signal_finished().
                         */
                        virtual void finish(bool attach = false);
 
                        /**
                         * Obtiene la señal que avisa cuando la tarea es finalizada.
                         *
-                        * \see Para saber cuando la tarea fue finalizada puede utilizar
-                        *      la señal signal_finished().
+                        * \see finish().
                         */
                        SignalFinished& signal_finished(void);