]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/src/runnable.cpp
Se corrigen algunos errores. Tengo un problema con la sobrecarga del operator>> ...
[z.facultad/75.42/plaqui.git] / Server / src / runnable.cpp
index 0c6b477306347ffd64f012fc5b43817b7094bf5d..cb3ba6fc84f1d14c1fee71ead30f98eadd4eef43 100644 (file)
@@ -34,7 +34,8 @@
 
 PlaQui::Server::Runnable::~Runnable(void) {
 #ifdef DEBUG
-       std::cerr << __FILE__ << ": destructor." << std::endl;
+       std::cerr << __FILE__ << ": destructor(this = " << this << ")"
+               << std::endl;
 #endif // DEBUG
 }
 
@@ -44,9 +45,10 @@ PlaQui::Server::Runnable::Runnable(void): thread(0), stop(false) {
 #endif // DEBUG
 }
 
-void PlaQui::Server::Runnable::static_run(PlaQui::Server::Runnable* runner) {
+void PlaQui::Server::Runnable::static_run(Runnable* runner) {
 #ifdef DEBUG
-       std::cerr << __FILE__ << ": runner = " << runner << std::endl;
+       std::cerr << __FILE__ << ": static_run(runner = " << runner << ")"
+               << std::endl;
 #endif // DEBUG
        runner->real_run();
        runner->signal_finished().emit();
@@ -55,20 +57,14 @@ void PlaQui::Server::Runnable::static_run(PlaQui::Server::Runnable* runner) {
 
 void PlaQui::Server::Runnable::run(bool detach) {
 #ifdef DEBUG
-       std::cerr << __FILE__ << ": detach = " << detach << std::endl;
+       std::cerr << __FILE__ << ": run(detach = " << detach << ")" << std::endl;
 #endif // DEBUG
        // Si vamos a correr la tarea en un thread.
        if (detach) {
-               // Nos aseguramos de tener threads.
-               if (!Glib::thread_supported()) {
-                       Glib::thread_init();
-               }
                // Corremos el thread en una funcion estática para poder destruirlo al
                // finalizar, pasandole el puntero al objeto.
                thread = Glib::Thread::create(
-                               SigC::bind<Runnable*>(
-                                       SigC::slot(&PlaQui::Server::Runnable::static_run),
-                                       this),
+                               SigC::bind<Runnable*>(SigC::slot(&Runnable::static_run), this),
                                true);
        // Si no corremos la tarea normalmente.
        } else {
@@ -79,9 +75,8 @@ void PlaQui::Server::Runnable::run(bool detach) {
 
 void PlaQui::Server::Runnable::finish(bool attach) {
 #ifdef DEBUG
-       std::cerr << __FILE__ << ": attach = " << attach << std::endl;
+       std::cerr << __FILE__ << ": finish(attach = " << attach << ")" << std::endl;
 #endif // DEBUG
-       // TODO - necesita un mutex?
        stop = true;
        if (attach) {
                thread->join();