diff --git a/checkin_notes b/checkin_notes index 2a219b12c5..4dcf0ec4f3 100644 --- a/checkin_notes +++ b/checkin_notes @@ -8967,3 +8967,17 @@ David 6 Nov 2009 sysmon_win.cpp lib/ url.cpp,h + +David 9 Nov 2009 + - client: the checkin of 15 Oct related to multi-thread apps + didn't work due to a typo. + - client: if is present in cc_config.xml, + we're supposed to act as if there were that many physical CPUs. + In particular, we need to set host_info.p_ncpus to that value, + since that's what is reported in scheduler requests. + + client/ + cpu_sched.cpp + cs_cmdline.cpp + cs_scheduler.cpp + sysmon_win.cpp diff --git a/client/cpu_sched.cpp b/client/cpu_sched.cpp index eacd508eaf..1df3a961e6 100644 --- a/client/cpu_sched.cpp +++ b/client/cpu_sched.cpp @@ -858,9 +858,13 @@ static void promote_multi_thread_jobs(vector& runnable_jobs) { if (first_non_mt != runnable_jobs.end()) { cur = runnable_jobs.erase(cur); runnable_jobs.insert(first_non_mt, rp); + cpus_used = 0; + first_non_mt = runnable_jobs.end(); + cur = runnable_jobs.begin(); + continue; } } else { - if (first_non_mt != runnable_jobs.end()) { + if (first_non_mt == runnable_jobs.end()) { first_non_mt = cur; } } @@ -929,7 +933,7 @@ void CLIENT_STATE::append_unfinished_time_slice( vector &runnable_jobs ) { unsigned int i; - int seqno = runnable_jobs.size(); + int seqno = (int)runnable_jobs.size(); for (i=0; i=0) { + host_info.p_ncpus = config.ncpus; ncpus = config.ncpus; } else if (host_info.p_ncpus>0) { ncpus = host_info.p_ncpus; diff --git a/client/cs_cmdline.cpp b/client/cs_cmdline.cpp index 9aee84222e..aed2184fee 100644 --- a/client/cs_cmdline.cpp +++ b/client/cs_cmdline.cpp @@ -245,8 +245,6 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) { void CLIENT_STATE::parse_env_vars() { char *p; - char temp[256]; - int proto; PARSED_URL purl; p = getenv("HTTP_PROXY"); diff --git a/client/cs_scheduler.cpp b/client/cs_scheduler.cpp index ae76fe1b1b..f367d7f79e 100644 --- a/client/cs_scheduler.cpp +++ b/client/cs_scheduler.cpp @@ -212,6 +212,7 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p) { // update hardware info, and write host info // host_info.get_host_info(); + set_ncpus(); retval = host_info.write(mf, config.suppress_net_info); //if (retval) return retval; diff --git a/client/sysmon_win.cpp b/client/sysmon_win.cpp index 3dac43b613..e4adc95711 100644 --- a/client/sysmon_win.cpp +++ b/client/sysmon_win.cpp @@ -189,10 +189,6 @@ static void windows_detect_autoproxy_settings() { // Parse the remaining url parse_url(proxy.c_str(), purl); - proxy_protocol, - proxy_server, - proxy_port, - proxy_file // Store the results for future use. gstate.proxy_info.autodetect_protocol = purl.protocol;