int main(void) { PS = getpagesize(); HPS = gethugepagesize(); unsigned count = hardware_corrupted(); if (!hugetlbfs_root(hugetlbfsdir)) err("hugetlbfs_root"); anonymous("anonymous", 0); check(&count, "anonymous", 1); anonymous("anonymous mlock", MAP_LOCKED); check(&count, "anonymous mlock", 1); disk_backed("disk backed", 0); check(&count, "disk backed", 1); disk_backed("disk backed mlock", 0); check(&count, "disk backed mlock", 1); shm_hugepage("shm hugepage", 0); check(&count, "shm hugepage", HPS / PS); anonymous_hugepage("anonymous hugepage", 0); check(&count, "anonymous hugepage", HPS / PS); filebacked_hugepage("file backed hugepage", 0); check(&count, "file backed hugepage", HPS / PS); // add more test cases here return exitcode; }
int main () { zmq::context_t context(1); // First allow 0MQ to set the identity zmq::socket_t sink(context, ZMQ_XREP); sink.bind( "inproc://example"); zmq::socket_t anonymous(context, ZMQ_REQ); anonymous.connect( "inproc://example"); s_send (anonymous, "XREP uses a generated UUID"); s_dump (sink); zmq::socket_t identified (context, ZMQ_REQ); identified.setsockopt( ZMQ_IDENTITY, "Hello", 5); identified.connect( "inproc://example"); s_send (identified, "XREP socket uses REQ's socket identity"); s_dump (sink); return 0; }
// Try to send the client this result // This can fail because: // - result needs more disk/mem/speed than host has // - already sent a result for this WU // - no app_version available // static int possibly_send_result(DB_RESULT& result) { DB_WORKUNIT wu; DB_RESULT result2; int retval, count; char buf[256]; BEST_APP_VERSION* bavp; retval = wu.lookup_id(result.workunitid); if (retval) return ERR_DB_NOT_FOUND; bavp = get_app_version(wu, true); if (!bavp && anonymous(g_request->platforms.list[0])) { char help_msg_buf[512]; sprintf(help_msg_buf, "To get more %s work, finish current work, stop BOINC, remove app_info.xml file, and restart.", config.long_name ); g_reply->insert_message(USER_MESSAGE(help_msg_buf, "high")); g_reply->set_delay(DELAY_ANONYMOUS); } if (!bavp) return ERR_NO_APP_VERSION; APP* app = ssp->lookup_app(wu.appid); if (wu_is_infeasible_fast(wu, *app, *bavp)) { return ERR_INSUFFICIENT_RESOURCE; } if (config.one_result_per_user_per_wu) { sprintf(buf, "where userid=%d and workunitid=%d", g_reply->user.id, wu.id); retval = result2.count(count, buf); if (retval) return ERR_DB_NOT_FOUND; if (count > 0) return ERR_WU_USER_RULE; } return add_result_to_reply(result, wu, bavp, true); }
// I'm not real sure why this is here. // Why not copy the request message directly? // int SCHEDULER_REQUEST::write(FILE* fout) { unsigned int i; fprintf(fout, "<scheduler_request>\n" " <authenticator>%s</authentiicator>\n" " <platform_name>%s</platform_name>\n" " <cross_project_id>%s</cross_project_id>\n" " <hostid>%d</hostid>\n" " <core_client_major_version>%d</core_client_major_version>\n" " <core_client_minor_version>%d</core_client_minor_version>\n" " <core_client_release>%d</core_client_release>\n" " <rpc_seqno>%d</rpc_seqno>\n" " <work_req_seconds>%.15f</work_req_seconds>\n" " <resource_share_fraction>%.15f</resource_share_fraction>\n" " <rrs_fraction>%.15f</rrs_fraction>\n" " <prrs_fraction>%.15f</prrs_fraction>\n" " <estimated_delay>%.15f</estimated_delay>\n" " <code_sign_key>%s</code_sign_key>\n" " <anonymous_platform>%s</anonymous_platform>\n", authenticator, platform.name, cross_project_id, hostid, core_client_major_version, core_client_minor_version, core_client_release, rpc_seqno, work_req_seconds, resource_share_fraction, rrs_fraction, prrs_fraction, cpu_estimated_delay, code_sign_key, anonymous(platforms.list[0])?"true":"false" ); for (i=0; i<client_app_versions.size(); i++) { fprintf(fout, " <app_version>\n" " <app_name>%s</app_name>\n" " <version_num>%d</version_num>\n" " </app_version>\n", client_app_versions[i].app_name, client_app_versions[i].version_num ); } fprintf(fout, " <global_prefs_xml>\n" " %s" " </globals_prefs_xml>\n", global_prefs_xml ); fprintf(fout, " <global_prefs_source_email_hash>%s</global_prefs_source_email_hash>\n", global_prefs_source_email_hash ); fprintf(fout, " <host>\n" " <id>%d</id>\n" " <rpc_time>%d</rpc_time>\n" " <timezone>%d</timezone>\n" " <d_total>%.15f</d_total>\n" " <d_free>%.15f</d_free>\n" " <d_boinc_used_total>%.15f</d_boinc_used_total>\n" " <d_boinc_used_project>%.15f</d_boinc_used_project>\n" " <d_boinc_max>%.15f</d_boinc_max>\n", host.id, host.rpc_time, host.timezone, host.d_total, host.d_free, host.d_boinc_used_total, host.d_boinc_used_project, host.d_boinc_max ); for (i=0; i<results.size(); i++) { fprintf(fout, " <result>\n" " <name>%s</name>\n" " <client_state>%d</client_state>\n" " <cpu_time>%.15f</cpu_time>\n" " <exit_status>%d</exit_status>\n" " <app_version_num>%d</app_version_num>\n" " </result>\n", results[i].name, results[i].client_state, results[i].cpu_time, results[i].exit_status, results[i].app_version_num ); } for (i=0; i<msgs_from_host.size(); i++) { fprintf(fout, " <msg_from_host>\n" " <variety>%s</variety>\n" " <msg_text>%s</msg_text>\n" " </msg_from_host>\n", msgs_from_host[i].variety, msgs_from_host[i].msg_text.c_str() ); } for (i=0; i<file_infos.size(); i++) { fprintf(fout, " <file_info>\n" " <name>%s</name>\n" " </file_info>\n", file_infos[i].name ); fprintf(fout, "</scheduler_request>\n"); } return 0; }
void VarTerm::print(Storage *sto, std::ostream &out) const { if(anonymous()) out << "_"; else out << sto->string(nameId_); }
TopLevel::TopLevel() : KSystemTray() { setBackgroundMode(X11ParentRelative); // what for? QString n, key; unsigned int num; teas.clear(); KConfig *config = kapp->config(); config->setGroup("Teas"); if (config->hasKey("Number")) { // assuming this is a new-style config num = config->readNumEntry("Number", 0); teas.resize(num); QString tempstr; for (unsigned int index=1; index<=num; ++index) { key.sprintf("Tea%d Time", index); tempstr = config->readEntry(key, NULL); teas[index-1].time = tempstr.toInt(); key.sprintf("Tea%d Name", index); teas[index-1].name = config->readEntry(key, NULL); // FIXME: check for non-existence! } config->setGroup("General"); } else { // either old-style config or first start, so provide some sensible defaults // (which are the same as in old-style kteatime) tea_struct temp; temp.name = i18n("Black Tea"); temp.time = 180; teas.append(temp); temp.name = i18n("Earl Grey"); temp.time = 300; teas.append(temp); temp.name = i18n("Fruit Tea"); temp.time = 480; teas.append(temp); // switch back to old-style default group config->setGroup(NULL); // look for old-style "UserTea"-entry and add that one also if (config->hasKey("UserTea")) { num = config->readNumEntry("UserTea", 150); temp.name = i18n("Other Tea"); temp.time = num; teas.append(temp); } } current_selected = config->readNumEntry("Tea", 0); if (current_selected >= teas.count()) current_selected = 0; listempty = (teas.count() == 0); startAct = new KAction(i18n("&Start"), "1rightarrow", 0, this, SLOT(start()), actionCollection(), "start"); stopAct = new KAction(i18n("Sto&p"), "cancel", 0, this, SLOT(stop()), actionCollection(), "stop"); confAct = new KAction(i18n("&Configure..."), "configure", 0, this, SLOT(config()), actionCollection(), "configure"); anonAct = new KAction(i18n("&Anonymous..."), 0, 0, this, SLOT(anonymous()), actionCollection(), "anonymous"); // KAction *quitAct = actionCollection()->action("file_quit"); // create app menu (displayed on right-click) menu = new QPopupMenu(); menu->setCheckable(true); connect(menu, SIGNAL(activated(int)), this, SLOT(teaSelected(int))); // this menu will be displayed when no tea is steeping, and left mouse button is clicked start_menu = new QPopupMenu(); start_menu->setCheckable(true); // menu isn't tickable, but this gives some add. spacing connect(start_menu, SIGNAL(activated(int)), this, SLOT(teaStartSelected(int))); rebuildTeaMenus(); // populate tops of menus with tea-entries from config KHelpMenu* help = new KHelpMenu(this, KGlobal::instance()->aboutData(), false); KPopupMenu* helpMnu = help->menu(); start_menu->insertSeparator(); anonAct->plug(start_menu); menu->insertSeparator(); anonAct->plug(menu); startAct->plug(menu); stopAct->plug(menu); menu->insertSeparator(); confAct->plug(menu); menu->insertItem(SmallIcon("help"), i18n("&Help"), helpMnu); menu->insertItem(SmallIcon("exit"), i18n("Quit"), kapp, SLOT(quit())); // quitAct->plug(menu); // FIXME: this doesn't seem to work with above definition of quitAct? // (need special 'quit'-method?) // this menu will be displayed when a tea is steeping, and left mouse button is clicked steeping_menu = new QPopupMenu(); // steeping_menu->insertItem(SmallIcon("cancel"), i18n("Just &Cancel Current"), this, SLOT(stop())); stopAct->plug(steeping_menu); // FIXME: can provide different text for this incarnation? // start_menu->insertSeparator(); // startAct->plug(start_menu); // FIXME: include "start" entry here for quick access to current tea? // read remaining entries from config-file useNotify = config->readBoolEntry("Beep", true); // "Beep" should really be named "Notify" usePopup = config->readBoolEntry("Popup", true); useAction = config->readBoolEntry("UseAction", true); action = config->readEntry("Action"); useTrayVis = config->readBoolEntry("UseTrayVis", true); mugPixmap = loadIcon("mug"); teaNotReadyPixmap = loadIcon("tea_not_ready"); teaAnim1Pixmap = loadIcon("tea_anim1"); teaAnim2Pixmap = loadIcon("tea_anim2"); confdlg = 0L; anondlg = 0L; stop(); // reset timer, disable some menu entries, etc. }