[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