diff --git a/checkin_notes b/checkin_notes
index e57941e98e..7bb14fd27e 100644
--- a/checkin_notes
+++ b/checkin_notes
@@ -743,15 +743,15 @@ David 27 Jan 2010
work_fetch.cpp
David 27 Jan 2010
- - client: fix work fetch bug that prevented getting work
- from an overworked project,
- even if idle instance or major shortfall.
- - GUI RPC: finish the notice-duplication thing
+ - client: fix work fetch bug that prevented getting work
+ from an overworked project,
+ even if idle instance or major shortfall.
+ - GUI RPC: finish the notice-duplication thing
- client/
- work_fetch.cpp,h
- lib/
- gui_rpc_client_ops.cpp
+ client/
+ work_fetch.cpp,h
+ lib/
+ gui_rpc_client_ops.cpp
David 27 Jan 2010
- client: remove debug msgs
@@ -784,11 +784,11 @@ Charlie 28 Jan 2010
Mac_SA_Secure.sh
David 28 Jan 2010
- - client: fix my last checkin
+ - client: fix my last checkin
- client/
- client_types.cpp
- cs_statefile.cpp
+ client/
+ client_types.cpp
+ cs_statefile.cpp
David 29 Jan 2010
- user web: allow zero resource share
@@ -809,12 +809,12 @@ David 29 Jan 2010
forum_reply.php
David 30 Jan 2010
- - manager: move Preferences and Options to Task menu.
- Give them more descriptive names.
- Clean up mnemonics
+ - manager: move Preferences and Options to Task menu.
+ Give them more descriptive names.
+ Clean up mnemonics
- clientgui/
- AdvancedFrame.cpp
+ clientgui/
+ AdvancedFrame.cpp
David 1 Feb 2010
- graphics API: if font missing, find one that isn't (from Kevin)
@@ -1020,14 +1020,14 @@ Charlie 8 Feb 2010
BOINCSaver.nib
David 9 Feb 2010
- - client: undo [17160]. 0 in cc_config.xml
- no longer means simulate zero CPUs.
- There are several places that divide by ncpus.
- Zero CPUs doesn't make any sense anyway.
+ - client: undo [17160]. 0 in cc_config.xml
+ no longer means simulate zero CPUs.
+ There are several places that divide by ncpus.
+ Zero CPUs doesn't make any sense anyway.
- client/
- cpu_sched.cpp
- work_fetch.cpp
+ client/
+ cpu_sched.cpp
+ work_fetch.cpp
Rom 9 Feb 2010
- client: some more CPU detection cleanup.
@@ -1145,3 +1145,14 @@ Rom 10 Feb 2010
clientgui/
BOINCTaskBar.cpp, .h
+
+David 11 Feb 2009
+ - client: if a project is anonymous platform and it has no
+ app versions that use a resource,
+ don't request work from it for that resource.
+
+ client/
+ work_fetch.cpp,h
+ client_state.cpp
+ html/inc/
+ prefs.inc
diff --git a/client/client_state.cpp b/client/client_state.cpp
index 815a7e4b50..8d20648411 100644
--- a/client/client_state.cpp
+++ b/client/client_state.cpp
@@ -287,7 +287,9 @@ int CLIENT_STATE::init() {
//
check_anonymous();
- cpu_benchmarks_set_defaults(); // for first time, make sure p_fpops nonzero
+ // first time, set p_fpops nonzero to avoid div by zero
+ //
+ cpu_benchmarks_set_defaults();
// Parse the client state file,
// ignoring any tags (and associated stuff)
@@ -301,7 +303,7 @@ int CLIENT_STATE::init() {
parse_account_files_venue();
- // fill in avp->flops for anonymous project
+ // fill in avp->flops for anonymous platform projects
//
for (i=0; i::iterator project_iter;
diff --git a/client/work_fetch.cpp b/client/work_fetch.cpp
index 0a613753e7..50ec140bc0 100644
--- a/client/work_fetch.cpp
+++ b/client/work_fetch.cpp
@@ -285,6 +285,7 @@ PROJECT* RSC_WORK_FETCH::choose_project(int criterion) {
if (!p->pwf.can_fetch_work) continue;
if (!project_state(p).may_have_work) continue;
RSC_PROJECT_WORK_FETCH& rpwf = project_state(p);
+ if (rpwf.anon_skip) continue;
switch (criterion) {
case FETCH_IF_MINOR_SHORTFALL:
if (rpwf.overworked()) continue;
@@ -360,6 +361,7 @@ PROJECT* RSC_WORK_FETCH::choose_project(int criterion) {
void RSC_WORK_FETCH::set_request(PROJECT* p, bool allow_overworked) {
RSC_PROJECT_WORK_FETCH& w = project_state(p);
if (!w.may_have_work) return;
+ if (w.anon_skip) return;
if (!allow_overworked && w.overworked()) return;
if (shortfall) {
if (wacky_dcf(p)) {
@@ -1106,6 +1108,31 @@ void WORK_FETCH::init() {
if (config.zero_debts) {
zero_debts();
}
+
+ // see what resources anon platform projects can use
+ //
+ unsigned int i, j;
+ for (i=0; ianonymous_platform) continue;
+ p->cpu_pwf.anon_skip = true;
+ p->cuda_pwf.anon_skip = true;
+ p->ati_pwf.anon_skip = true;
+ for (j=0; jproject != p) continue;
+ if (avp->ncudas) {
+ p->cuda_pwf.anon_skip = false;
+ break;
+ } else if (avp->natis) {
+ p->ati_pwf.anon_skip = false;
+ break;
+ } else {
+ p->cpu_pwf.anon_skip = false;
+ break;
+ }
+ }
+ }
}
////////////////////////
diff --git a/client/work_fetch.h b/client/work_fetch.h
index a42f2dd87b..092d2c2979 100644
--- a/client/work_fetch.h
+++ b/client/work_fetch.h
@@ -53,6 +53,9 @@ struct RSC_PROJECT_WORK_FETCH {
double queue_est;
// an estimate of instance-secs of queued work;
// a temp used in computing overall debts
+ bool anon_skip;
+ // set if this project is anonymous platform
+ // and it has no app version that uses this resource
// the following are used by rr_simulation()
//
diff --git a/doc/index.php b/doc/index.php
index cd9456228e..16dfa46287 100644
--- a/doc/index.php
+++ b/doc/index.php
@@ -221,6 +221,7 @@ function language_form() {
//."