[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/icecream/client
From:       Michael Matz <matz () kde ! org>
Date:       2006-05-22 16:20:40
Message-ID: 1148314840.430711.13514.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 543705 by matz:

Sometimes gotos are okay.  And it's called local_daemon now, not
scheduler.


 M  +3 -5      local.cpp  
 M  +12 -13    main.cpp  


--- branches/work/icecream/client/local.cpp #543704:543705
@@ -131,9 +131,9 @@
  * log our resource usage.
  *
  **/
-int build_local(CompileJob &job, MsgChannel *scheduler, struct rusage *used)
+int build_local(CompileJob &job, MsgChannel *local_daemon, struct rusage *used)
 {
-    trace() << "build_local " << scheduler << endl;
+    trace() << "build_local " << local_daemon << endl;
     list<string> arguments;
 
     string compiler_name = get_compiler_name( job );
@@ -164,7 +164,7 @@
     trace() << endl;
 #endif
 
-    if ( !scheduler ) {
+    if ( !local_daemon ) {
         int fd;
         if ( !dcc_lock_host(fd ) ) {
             log_error() << "can't lock for local job\n";
@@ -207,6 +207,4 @@
             dcc_unlock( lock_fd );
         return ret;
     }
-
-
 }
--- branches/work/icecream/client/main.cpp #543704:543705
@@ -188,16 +188,16 @@
         } else {
             if ( !local_daemon->send_msg( GetNativeEnvMsg() ) ) {
                 log_warning() << "failed to write get native environment\n";
-                delete local_daemon;
-                return build_local( job, 0 );
+		goto do_local_error;
             }
 
             // the timeout is high because it creates the native version
             Msg *umsg = local_daemon->get_msg(4 * 60);
-            trace() << "sent " << (umsg ? ( char )umsg->type : '?') << endl;
+            trace() << "got " << (umsg ? ( char )umsg->type : '?') << endl;
             if ( !umsg || umsg->type != M_NATIVE_ENV ) {
-                delete local_daemon;
-                return build_local( job, 0 );
+		log_warning() << "daemon didn't answer with a native env\n";
+		delete umsg;
+                goto do_local_error;
             }
             UseNativeEnvMsg *ucs = dynamic_cast<UseNativeEnvMsg*>( umsg );
 
@@ -212,20 +212,15 @@
             delete umsg;
         }
 
-        bool error = ( envs.size() == 0 );
+        if ( envs.size() == 0 )
+	    goto do_local_error;
         for ( Environments::const_iterator it = envs.begin(); it != envs.end(); ++it ) {
             trace() << "env: " << it->first << " '" << it->second << "'" << endl;
             if ( ::access( it->second.c_str(), R_OK ) ) {
                 log_error() << "can't read environment " << it->second << endl;
-                error = true;
-                break;
+                goto do_local_error;
             }
         }
-
-        if ( error ) {
-            delete local_daemon;
-            return build_local( job, 0 );
-        }
     }
 
     int ret;
@@ -247,4 +242,8 @@
     local_daemon->send_msg (EndMsg());
     delete local_daemon;
     return ret;
+
+do_local_error:
+    delete local_daemon;
+    return build_local( job, 0 );
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic