// Send work by scanning the job array multiple times, // with different selection criteria on each scan. // This has been superceded by send_work_matchmaker() // void send_work_old() { g_wreq->beta_only = false; g_wreq->user_apps_only = true; g_wreq->infeasible_only = false; // give top priority to results that require a 'reliable host' // if (g_wreq->has_reliable_version) { g_wreq->reliable_only = true; if (scan_work_array()) return; g_wreq->reliable_only = false; g_wreq->best_app_versions.clear(); } // give 2nd priority to results for a beta app // (projects should load beta work with care, // otherwise your users won't get production work done! // if (g_wreq->allow_beta_work) { g_wreq->beta_only = true; if (config.debug_send) { log_messages.printf(MSG_NORMAL, "[send] [HOST#%d] will accept beta work. Scanning for beta work.\n", g_reply->host.id ); } if (scan_work_array()) return; } g_wreq->beta_only = false; // give next priority to results that were infeasible for some other host // g_wreq->infeasible_only = true; if (scan_work_array()) return;; // that takes care of high-priority cases. Now do general scan. // g_wreq->infeasible_only = false; if (scan_work_array()) return; // If user has selected apps but will accept any, // and we haven't found any jobs for selected apps, try others // if (!g_wreq->njobs_sent && g_wreq->allow_non_preferred_apps ) { g_wreq->user_apps_only = false; preferred_app_message_index = g_wreq->no_work_messages.size(); if (config.debug_send) { log_messages.printf(MSG_NORMAL, "[send] [HOST#%d] is looking for work from a non-preferred application\n", g_reply->host.id ); } scan_work_array(); } }
// Send work by scanning the job array multiple times, // with different selection criteria on each scan. // void send_work_old() { g_wreq->beta_only = false; g_wreq->user_apps_only = true; g_wreq->infeasible_only = false; // give top priority to results that require a 'reliable host' // if (g_wreq->has_reliable_version) { g_wreq->reliable_only = true; if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] scanning for jobs that need reliable host\n" ); } if (scan_work_array()) return; g_wreq->reliable_only = false; g_wreq->best_app_versions.clear(); } else { if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] host has no reliable app versions; skipping scan\n" ); } } // give 2nd priority to results for a beta app // (projects should load beta work with care, // otherwise your users won't get production work done! // if (g_wreq->allow_beta_work) { g_wreq->beta_only = true; if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] host will accept beta jobs. Scanning for them.\n" ); } if (scan_work_array()) return; g_wreq->beta_only = false; } // give next priority to results that were infeasible for some other host // g_wreq->infeasible_only = true; if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] Scanning for jobs that were infeasible for another host.\n" ); } if (scan_work_array()) return; g_wreq->infeasible_only = false; // if some app uses locality sched lite, // make a pass accepting only jobs for which the client has a file // if (ssp->locality_sched_lite) { if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] Scanning for locality sched Lite jobs.\n" ); } g_wreq->locality_sched_lite = true; if (scan_work_array()) return; g_wreq->locality_sched_lite = false; } // end of high-priority cases. Now do general scan. // if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] Scanning: general case.\n" ); } if (scan_work_array()) return; // If user has selected apps but will accept any, // and we haven't found any jobs for selected apps, try others // if (!g_wreq->njobs_sent && g_wreq->allow_non_preferred_apps ) { g_wreq->user_apps_only = false; preferred_app_message_index = g_wreq->no_work_messages.size(); if (config.debug_send_scan) { log_messages.printf(MSG_NORMAL, "[send_scan] scanning for jobs from non-preferred applications\n" ); } if (scan_work_array()) return; } }