这篇教程C++ tw_error函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中tw_error函数的典型用法代码示例。如果您正苦于以下问题:C++ tw_error函数的具体用法?C++ tw_error怎么用?C++ tw_error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了tw_error函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: send_finish/** * @brief Determines how to handle the buffer of event whose send operation * just finished. * * @param[in] me pointer to PE * @param[in] e pointer to event that we just received * @param[in] buffer not currently used */static voidsend_finish(tw_pe *me, tw_event *e, char * buffer){ (void) buffer; me->stats.s_nsend_network++; // instrumentation e->src_lp->kp->kp_stats->s_nsend_network++; e->src_lp->lp_stats->s_nsend_network++; if (e->state.owner == TW_net_asend) { if (e->state.cancel_asend) { /* Event was cancelled during transmission. We must * send another message to pass the cancel flag to * the other node. */ e->state.cancel_asend = 0; e->state.cancel_q = 1; tw_eventq_push(&outq, e); } else { /* Event finished transmission and was not cancelled. * Add to our sent event queue so we can retain the * event in case we need to cancel it later. Note it * is currently in remote format and must be converted * back to local format for fossil collection. */ e->state.owner = TW_pe_sevent_q; if( g_tw_synchronization_protocol == CONSERVATIVE ) tw_event_free(me, e); } return; } if (e->state.owner == TW_net_acancel) { /* We just finished sending the cancellation message * for this event. We need to free the buffer and * make it available for reuse. */ tw_event_free(me, e); return; } /* Never should happen, not unless we somehow broke this * module's other functions related to sending an event. */ tw_error( TW_LOC, "Don't know how to finish send of owner=%u, cancel_q=%d", e->state.owner, e->state.cancel_q);}
开发者ID:carothersc,项目名称:ROSS,代码行数:61,
示例2: iroundvoid DajielkaSanctuary::calculate(void){ STACKTRACE; SpaceObject::calculate(); if (creator && !creator->exists()) { creator = 0; } int i,j; int oldSpriteIndex; int regenMultiplier; //corrected for click-dependant regeneration. Tau. DajielkaSanctuary::addEnergy( iround(energyPerFrame*frame_time/25.0) ); for ( i = 0; i < 30; i++) { if (tendril[i]) { if (!tendril[i]->exists()) { tw_error("a dead tendril? this should not happen"); tendril[i] = 0; } if (tendril[i]->recreateMe == TRUE) { //tw_error("Want to recreate!"); //tendril[i] = this->RecreateTendril(tendril[i]); } } } vel = 0; regenMultiplier=1; for(j=0;j<regenerationExponent;j++) regenMultiplier *= armour; if (!regenerationIsTendrilBased) regenerationCount += frame_time; if (regenerationCount>(regenerationThreshhold*regenMultiplier)) if (armour<maxArmour && creator!=NULL) { //tw_error("armour=%d regenMultiplier=%d",armour,regenMultiplier); armour++; regenerationCount -= (regenerationThreshhold*regenMultiplier); } else regenerationCount=0; oldSpriteIndex = sprite_index; sprite_index = (int)((((double)armour / (double)maxArmour) * 10)+0.2); if (sprite_index<0) sprite_index=0; if (sprite_index>9) sprite_index=9; if (creator && oldSpriteIndex!=sprite_index&&oldSpriteIndex<sprite_index) creator->play_sound2(creator->data->sampleSpecial[creator->special_sample]);}
开发者ID:Yurand,项目名称:tw-light,代码行数:53,
示例3: tw_errorbool Control::die(){ STACKTRACE; if (channel == Game::channel_none) return Presence::die(); // controls CANNOT arbitrarily be killed off, because the deal with networking directly tw_error("controls cannot be killed"); //the error can be removed eventually... //I just want to find out if anything is actually calling this //because before this function was added, that would have resulted in a desynch return false;}
开发者ID:argarak,项目名称:tw-light,代码行数:12,
示例4: tw_client_socket_createinttw_client_socket_create(char *server, tw_socket * socket_addr, tw_port port){ int socket_fd; struct hostent *hp; if ((socket_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) tw_error(TW_LOC, "Error creating socket."); bzero(socket_addr, sizeof(struct sockaddr_in)); hp = gethostbyname(server); if (hp == NULL) tw_error(TW_LOC, "Unknown host: %s", server); bcopy((char *)hp->h_addr, (char *)&socket_addr->sin_addr, hp->h_length); socket_addr->sin_family = AF_INET; socket_addr->sin_port = htons(port); return socket_fd;}
开发者ID:chleemobile,项目名称:rossnet,代码行数:21,
示例5: tw_net_cancelvoidtw_net_cancel(tw_event *e){ tw_pe *src_pe = e->src_lp->pe; switch (e->state.owner) { case TW_net_outq: /* Cancelled before we could transmit it. Do not * transmit the event and instead just release the * buffer back into our own free list. */ tw_eventq_delete_any(&outq, e); tw_event_free(src_pe, e); return; break; case TW_net_asend: /* Too late. We've already let MPI start to send * this event over the network. We can't pull it * back now without sending another message to do * the cancel. * * Setting the cancel_q flag will signal us to do * another message send once the current send of * this message is completed. */ e->state.cancel_asend = 1; break; case TW_pe_sevent_q: /* Way late; the event was already sent and is in * our sent event queue. Mark it as a cancel and * place it at the front of the outq. */ e->state.cancel_q = 1; tw_eventq_unshift(&outq, e); break; default: /* Huh? Where did you come from? Why are we being * told about you? We did not send you so we cannot * cancel you! */ tw_error( TW_LOC, "Don't know how to cancel event owned by %u", e->state.owner); } service_queues(src_pe);}
开发者ID:carothersc,项目名称:ROSS,代码行数:53,
示例6: ospf_rc_event_handlervoidospf_rc_event_handler(ospf_state * state, tw_bf *bf, rn_message *rn_msg, tw_lp *lp){#if 0 ospf_message *msg; ospf_nbr *nbr; msg = rn_message_data(rn_msg); nbr = ospf_int_getinterface(state, rn_msg->src); if(!nbr) nbr = ospf_util_data(msg); if(msg->type == OSPF_IP) tw_error(TW_LOC, "IP packet forwarding not reversible yet!"); switch(msg->type) { case OSPF_HELLO_MSG: ospf_hello_packet_rc(state, nbr, bf, msg, lp); state->stats->s_e_hello_in--; break; case OSPF_HELLO_SEND: // need to restart timer nbr->hello_timer = ospf_timer_start(nbr, nbr->hello_timer, nbr->hello_interval, OSPF_HELLO_SEND, lp); break; case OSPF_HELLO_TIMEOUT: state->stats->s_e_hello_timeouts--; ospf_nbr_event_handler(state, nbr, rc_ospf_nbr_inactivity_timer_ev, lp); break; default: tw_error(TW_LOC, "Unhandled event type (%d) in " "rc_event_handler!", msg->type); }#endif}
开发者ID:chleemobile,项目名称:rossnet,代码行数:40,
示例7: tcp_rc_timer_resettw_event *tcp_rc_timer_reset(tw_event * timer, tw_bf * bf, tcp_message * old, tw_lp * lp){ if(bf->c14) { // If I init'd a timer, cancel it. if(timer) { tw_memory_alloc_rc(lp, timer->memory, g_tcp_fd); timer->memory = NULL;#if TCP_DEBUG printf("/t%lld: cancel timer at %lf (%ld)/n", lp->id, timer->recv_ts, (long int) timer);#endif rn_timer_cancel(lp, &timer); } // restore pointer to previous timer //timer = old->RC.timer; //old->RC.timer = NULL; } else { //rn_timer_reset(lp, &timer, old->RC.timer_ts); } if(bf->c13 == 0) return timer; if(timer) { tcp_message *m;#if TCP_DEBUG printf("/t%lld: new RTO at %lf (%ld)/n", lp->id, tw_now(lp), (long int) timer);#endif if(NULL == timer->memory) timer->memory = tw_memory_alloc(lp, g_tcp_fd); m = tw_memory_data(timer->memory); //m->seq_num = old->RC.timer_seq; m->src = old->src; } if(timer && !timer->memory) tw_error(TW_LOC, "no membuf here!"); return timer;}
开发者ID:chleemobile,项目名称:rossnet,代码行数:52,
示例8: static_get_native_bpp_indexstatic int static_get_native_bpp_index(){ int i; for (i = 0; i< sizeof(color_depth)/sizeof(color_depth[0]); i++) { if (strcmp(color_depth[i], "Native") == 0) { break; } } if (i == sizeof(color_depth)/sizeof(color_depth[0])) { tw_error("Unable to find 'Native' in resolutions strings"); } return i;}
开发者ID:argarak,项目名称:tw-light,代码行数:13,
示例9: rn_hash_insertvoidrn_hash_insert(void *h, rn_link * event){ rn_hash *hash_t; hash_t = (rn_hash *) h; h_insert(hash_t->storage, event, hash_t->capacity); hash_t->nstored++; if(hash_t->nstored > floor(hash_t->capacity * RN_MAX_FRACTION)) tw_error(TW_LOC, "Inserted beyond RN_MAX_FRACTION!");}
开发者ID:chleemobile,项目名称:rossnet,代码行数:13,
示例10: tw_errorvoid GobPlayer::_add_pair(const char *id, int value){ STACKTRACE; if (_get_pair(id)) { tw_error("GobPlayer::_add_pair - /"%s/" already exists", id); return; } pair_list = (pair*)realloc(pair_list, sizeof(pair) * (num_pairs+1)); pair_list[num_pairs].id = strdup(id); pair_list[num_pairs].value = value; num_pairs += 1; return;}
开发者ID:argarak,项目名称:tw-light,代码行数:13,
示例11: tw_socket_readinttw_socket_read(int fd, char *buffer, int bytes, int tries){ int rv; int total = 0; int give_up; if(fd == 0) tw_error(TW_LOC, "Trying to read from invalid fd %d ! /n", fd); give_up = tries ? tries : 100; do { if ((rv = read(fd, &buffer[total], bytes - total)) > 0) { total += rv; } else if (errno == EAGAIN && total == 0) { return 0; } else if (errno != EAGAIN && errno != 0) { perror("network read error"); tw_error(TW_LOC, "network receive error occurred."); } } while (total < bytes || (give_up-- && (total == 0))); //} while(--give_up || total < bytes); if (give_up == 0 && total != bytes) tw_error(TW_LOC, "Giving up in read!"); if (total != bytes) { tw_error(TW_LOC, "Only read %d out of %d bytes!", total, bytes); } return total;}
开发者ID:chleemobile,项目名称:rossnet,代码行数:39,
示例12: tw_lp_suspendvoidtw_lp_suspend(tw_lp * lp, int do_orig_event_rc, int error_num ){ if(!lp) tw_error(TW_LOC, "Bad LP pointer!"); lp->suspend_flag=1; lp->suspend_event = lp->pe->cur_event; // only valid prior to GVT lp->suspend_time = tw_now(lp); lp->suspend_error_number = error_num; lp->suspend_do_orig_event_rc = do_orig_event_rc;}
开发者ID:nwolfey21,项目名称:ROSS-GPU,代码行数:13,
示例13: rc_getlinkip_link *rc_getlink(ip_state * state, rn_machine * me, rn_link * link){ int i; for(i = 0; i < me->nlinks; i++) if(state->links[i].link == link) return &state->links[i]; tw_error(TW_LOC, "Unable to find link!"); return NULL;}
开发者ID:chleemobile,项目名称:rossnet,代码行数:13,
示例14: avl_allocAvlTree avl_alloc(void){ AvlTree head = g_tw_pe[0]->avl_list_head; g_tw_pe[0]->avl_list_head = head->next; if (g_tw_pe[0]->avl_list_head == NULL) { tw_error(TW_LOC, "avl_list_head is invalid!"); } head->next = NULL; return head;}
开发者ID:wilseypa,项目名称:ROSS,代码行数:13,
示例15: mainintmain(int argc, char **argv, char **env){ int i; // get rid of error if compiled w/ MEMORY queues g_tw_memory_nqueues=1; // set a min lookahead of 1.0 lookahead = 1.0; tw_opt_add(app_opt); tw_init(&argc, &argv); if( lookahead > 1.0 ) tw_error(TW_LOC, "Lookahead > 1.0 .. needs to be less/n"); //reset mean based on lookahead mean = mean - lookahead; g_tw_memory_nqueues = 16; // give at least 16 memory queue event offset_lpid = g_tw_mynode * nlp_per_pe; ttl_lps = tw_nnodes() * g_tw_npe * nlp_per_pe; g_tw_events_per_pe = (mult * nlp_per_pe * g_phold_start_events) + optimistic_memory; //g_tw_rng_default = TW_FALSE; g_tw_lookahead = lookahead; tw_define_lps(nlp_per_pe, sizeof(phold_message)); for(i = 0; i < g_tw_nlp; i++) tw_lp_settype(i, &mylps[0]); if( g_tw_mynode == 0 ) { printf("========================================/n"); printf("PHOLD Model Configuration............../n"); printf(" Lookahead..............%lf/n", lookahead); printf(" Start-events...........%u/n", g_phold_start_events); printf(" stagger................%u/n", stagger); printf(" Mean...................%lf/n", mean); printf(" Mult...................%lf/n", mult); printf(" Memory.................%u/n", optimistic_memory); printf(" Remote.................%lf/n", percent_remote); printf("========================================/n/n"); } tw_run(); tw_end(); return 0;}
开发者ID:nwolfey21,项目名称:ROSS-GPU,代码行数:51,
示例16: recv_beginstatic intrecv_begin(tw_pe *me){ MPI_Status status; tw_event *e = NULL; int flag = 0; int changed = 0; while (posted_recvs.cur < read_buffer) { unsigned id = posted_recvs.cur; if(!(e = tw_event_grab(me))) { if(tw_gvt_inprogress(me)) tw_error(TW_LOC, "Out of events in GVT! Consider increasing --extramem"); return changed; }#if ROSS_MEMORY if( MPI_Irecv(posted_recvs.buffers[id], EVENT_SIZE(e), MPI_BYTE, MPI_ANY_SOURCE, EVENT_TAG, MPI_COMM_ROSS, &posted_recvs.req_list[id]) != MPI_SUCCESS)#else if( MPI_Irecv(e, (int)EVENT_SIZE(e), MPI_BYTE, MPI_ANY_SOURCE, EVENT_TAG, MPI_COMM_ROSS, &posted_recvs.req_list[id]) != MPI_SUCCESS)#endif { tw_event_free(me, e); return changed; } posted_recvs.event_list[id] = e; posted_recvs.cur++; changed = 1; } return changed;}
开发者ID:nmcglohon,项目名称:ROSS,代码行数:50,
示例17: tmr_initvoidtmr_init(tmr_state * s, tw_lp * lp){ int i; if(!lp->rng) { tw_error(TW_LOC, "No RNG!"); lp->rng = tw_calloc(TW_LOC, "LP RNG", sizeof(tw_rng_stream), 1); tw_rand_initial_seed(lp->pe->rng, lp->rng, lp->gid); } for (i = 0; i < g_tmr_start_events; i++) { tw_event_send( tw_event_new(lp->gid, tw_rand_exponential(lp->rng, mean), lp)); } if((s->timer = tw_timer_init(lp, 100.0)) == NULL) tw_error(TW_LOC, "scheduled timer past end time /n");}
开发者ID:chleemobile,项目名称:rossnet,代码行数:23,
示例18: rn_xml_init/* * This function inits the parser and gets the total number of LPs to create */voidrn_xml_init(){#if RN_XML_DEBUG printf("Reading in XML topology file: %s/n/n", g_rn_xml_topology);#endif xmlXPathInit(); document_network = xmlReadFile(g_rn_xml_topology, NULL , 0); if(!document_network) tw_error(TW_LOC, "Parsing of network topology file %s failed!", g_rn_xml_topology); ctxt = xmlXPathNewContext(document_network); if(!ctxt) tw_error(TW_LOC, "Could not create network topology XML context!"); /* read in the XML network topology */ rn_xml_topology(); if(g_rn_xml_link_topology != NULL) { document_links = xmlReadFile(g_rn_xml_link_topology, NULL ,0); if(!document_links) tw_error(TW_LOC, "Parsing of link topology file %s failed!", g_rn_xml_link_topology); ctxt_links = xmlXPathNewContext(document_links); if(!ctxt_links) tw_error(TW_LOC, "Unable to create model XML context!"); /* read in the XML link topology */ rn_xml_link_topology(); xmlXPathFreeContext(ctxt_links); } if(NULL != g_rn_xml_model && 0 != strcmp(g_rn_xml_model, "")) { document_model = xmlReadFile(g_rn_xml_model, NULL, 0); if(!document_model) tw_error(TW_LOC, "Parsing of model file %s failed!", g_rn_xml_model); ctxt_model = xmlXPathNewContext(document_model); if(!ctxt_model) tw_error(TW_LOC, "Unable to create model XML context!"); rn_xml_model(); xmlXPathFreeContext(ctxt_model); }}
开发者ID:chleemobile,项目名称:rossnet,代码行数:60,
示例19: avlDelete/* delete the given value */tw_event *avlDelete(AvlTree *t, tw_event *key){ tw_event *target = NULL; AvlTree oldroot; if (*t == AVL_EMPTY) { tw_error(TW_LOC, "We never look for non-existent events!"); return target; } if (key->recv_ts == (*t)->key->recv_ts) { // We have a timestamp tie, check the event ID if (key->event_id == (*t)->key->event_id) { // We have a event ID tie, check the send_pe if (key->send_pe == (*t)->key->send_pe) { // This is actually the one we want to delete target = (*t)->key; /* do we have a right child? */ if ((*t)->child[1] != AVL_EMPTY) { /* give root min value in right subtree */ (*t)->key = avlDeleteMin(&(*t)->child[1]); } else { /* splice out root */ oldroot = (*t); *t = (*t)->child[0]; avl_free(oldroot); } } else { // Timestamp and event IDs are the same, but different send_pe target = avlDelete(&(*t)->child[key->send_pe > (*t)->key->send_pe], key); } } else { // Timestamps are the same but event IDs differ target = avlDelete(&(*t)->child[key->event_id > (*t)->key->event_id], key); } } else { // Timestamps are different target = avlDelete(&(*t)->child[key->recv_ts > (*t)->key->recv_ts], key); } avlRebalance(t); return target;}
开发者ID:wilseypa,项目名称:ROSS,代码行数:50,
示例20: tcp_timer_reset/* * tcp_timer_reset: reset the RTO timer properly */tw_event *tcp_timer_reset(tw_event * timer, tw_bf * bf, tcp_message * old, tw_stime ts, int sn, tw_lp * lp){ tcp_message *m; // this can happen because sometimes we rollback more events // than we need to when nkp < nlp. So, sometimes our events // our rolled back that do NOT reset the RTO, and therefore // it might seem that we need to RC reset the timer, when in fact // we do not. if(timer && timer->recv_ts == ts) tw_error(TW_LOC, "%ld: bad timer reset: cur ts %lf!", lp->gid, ts); // if this IS the timer firing, then init new timer if((bf->c14 = (!timer || timer == lp->pe->cur_event))) { old->RC.timer = timer; timer = rn_timer_init(lp, ts);#if TCP_DEBUG printf("/t%lld: init RTO to %lf (%ld)/n", lp->gid, ts, (long int) timer);#endif } else {#if TCP_DEBUG printf("/t%lld: reset RTO to %lf (was %lf)/n", lp->gid, ts, timer->recv_ts);#endif old->RC.timer_ts = timer->recv_ts; rn_timer_reset(lp, &timer, ts); } if((bf->c13 = (timer != NULL))) { if(!timer->memory) timer->memory = tw_memory_alloc(lp, g_tcp_fd); m = tw_memory_data(timer->memory); old->RC.timer_seq = m->seq_num; m->src = old->src; m->seq_num = sn; } return timer;}
开发者ID:chleemobile,项目名称:rossnet,代码行数:52,
示例21: blit_singlecolorvoid blit_singlecolor(BITMAP *src, BITMAP *dest, int copycolor){ STACKTRACE; if ( src->w != dest->w || src->h != dest->h ) tw_error("error in copying color in shpysr2"); for ( int iy = 0; iy < src->h; ++iy ) { for ( int ix = 0; ix < src->w; ++ix ) { int color = getpixel(src, ix, iy); if ( color == copycolor ) tw_putpixel(dest, ix, iy, color); } }}
开发者ID:Yurand,项目名称:tw-light,代码行数:15,
示例22: tcp_router_rc_EventHandlervoid tcp_router_rc_EventHandler(Router_State *SV, tw_bf * CV,Msg_Data *M, tw_lp * lp){ //printf("router rollback %f lp %d/n",tw_now(lp),lp->id); switch (M->MethodName) { case FORWARD: tcp_router_forward_rc(SV, CV, M, lp); break; default: tw_error(TW_LOC, "APP_ERROR(8)(%d): InValid MethodName(%d)/n", lp->id, M->MethodName); tw_exit(1); }}
开发者ID:chleemobile,项目名称:rossnet,代码行数:15,
示例23: tw_pe_settypevoidtw_pe_settype(const tw_petype * type){ if (!g_tw_pe) tw_error(TW_LOC, "Undefined PE!");#define copy_pef(f, d) / g_tw_pe->type.f = type->f ? type->f : d copy_pef(pre_lp_init, dummy_pe_f); copy_pef(post_lp_init, dummy_pe_f); copy_pef(gvt, dummy_pe_f); copy_pef(final, dummy_pe_f);#undef copy_pef}
开发者ID:carothersc,项目名称:ROSS,代码行数:16,
示例24: forwarder_event_handlervoid forwarder_event_handler(forwarder_state * ns, tw_bf * b, forwarder_msg * m, tw_lp * lp) { //printf("In forwarder_event_handler/n"); assert(m->h.magic == forwarder_magic); switch (m->h.event_type) { case FORWARDER_FWD: handle_forwarder_fwd(ns, m, lp); break; case FORWARDER_RECV: handle_forwarder_recv(ns, m, lp); break; default: tw_error(TW_LOC, "unknown forwarder event type"); }}
开发者ID:tforlini,项目名称:CS597-Burst_Buffers_Simulation,代码行数:16,
示例25: wifi_access_point_event_handler_rcvoid wifi_access_point_event_handler_rc(wifi_access_point_state * s, tw_bf * bf, wifi_message * m, tw_lp * lp){ switch( m->type ) { case WIFI_PACKET_ARRIVAL_AT_ACCESS_POINT: wifi_access_point_arrival_rc(s, bf, m, lp); break; case WIFI_PACKET_ARRIVAL_AT_STATION: wifi_station_arrival_rc(s, bf, m, lp); break; default: tw_error(TW_LOC, "Undefined type, corrupted message /n"); break; }}
开发者ID:laprej,项目名称:ROSS-Models,代码行数:17,
示例26: save_spacesprite2void save_spacesprite2(SpaceSprite *ss, const char *spritename, const char *destination, const char *extension){ STACKTRACE; int i; char buf[512]; if (ss->frames() != 64) tw_error("save_spacesprite2 - error"); BITMAP *tmp = create_bitmap(int(ss->width() * 8), int(ss->height() * 8)); for (i = 0; i < ss->frames(); i += 1) { blit(ss->get_bitmap(i), tmp, 0, 0, (i&7) * (int)ss->width(), int((i/8) * ss->height()), (int)ss->width(), (int)ss->height()); sprintf(buf, "%s%i.%s", spritename, i, extension); save_bitmap(buf, tmp, NULL); } return;}
开发者ID:Yurand,项目名称:tw-light,代码行数:17,
示例27: tw_initvoid tw_init(int *argc, char ***argv) { int i;#if HAVE_CTIME time_t raw_time;#endif tw_opt_add(tw_net_init(argc, argv)); // Print out the command-line so we know what we passed in if (tw_ismaster()) { for (i = 0; i < *argc; i++) { printf("%s ", (*argv)[i]); } printf("/n/n"); } // Print our revision if we have it#ifdef ROSS_VERSION if (tw_ismaster()) {#if HAVE_CTIME time(&raw_time); printf("%s/n", ctime(&raw_time));#endif printf("ROSS Revision: %s/n/n", ROSS_VERSION); }#endif tw_opt_add(kernel_options); tw_opt_add(tw_gvt_setup()); tw_opt_add(tw_clock_setup());#ifdef USE_RIO tw_opt_add(io_opts);#endif // by now all options must be in tw_opt_parse(argc, argv); if(tw_ismaster() && NULL == (g_tw_csv = fopen("ross.csv", "a"))) { tw_error(TW_LOC, "Unable to open: ross.csv/n"); } tw_opt_print(); tw_net_start(); tw_gvt_start();}
开发者ID:ecamiloinacio,项目名称:ROSS,代码行数:46,
示例28: avlInsert/* this may replace root, which is why we pass * in a AvlTree * */voidavlInsert(AvlTree *t, tw_event *key){ /* insertion procedure */ if (*t == AVL_EMPTY) { /* new t */ *t = avl_alloc(); if (*t == NULL) { tw_error(TW_LOC, "Out of AVL tree nodes!"); } (*t)->child[0] = AVL_EMPTY; (*t)->child[1] = AVL_EMPTY; (*t)->key = key; (*t)->height = 1; /* done */ return; } if (key->recv_ts == (*t)->key->recv_ts) { // We have a timestamp tie, check the event ID if (key->event_id == (*t)->key->event_id) { // We have a event ID tie, check the send_pe if (key->send_pe == (*t)->key->send_pe) { // This shouldn't happen but we'll allow it tw_printf(TW_LOC, "The events are identical!!!/n"); } avlInsert(&(*t)->child[key->send_pe > (*t)->key->send_pe], key); avlRebalance(t); } else { // Event IDs are different avlInsert(&(*t)->child[key->event_id > (*t)->key->event_id], key); avlRebalance(t); } return; } else { // Timestamps are different avlInsert(&(*t)->child[key->recv_ts > (*t)->key->recv_ts], key); avlRebalance(t); }}
开发者ID:wilseypa,项目名称:ROSS,代码行数:48,
示例29: send_begin/** * @brief If there are any openings in the posted_sends queue, start sends * for events in the outgoing queue. * * @param[in] me pointer to the PE * @return 0 if no changes are made to the posted_sends queue, 1 otherwise. */static intsend_begin(tw_pe *me){ int changed = 0; while (posted_sends.cur < send_buffer) { tw_event *e = tw_eventq_peek(&outq); tw_peid dest_pe; unsigned id = posted_sends.cur; if (!e) break; if(e == me->abort_event) tw_error(TW_LOC, "Sending abort event!"); dest_pe = (*e->src_lp->type->map) ((tw_lpid) e->dest_lp); e->send_pe = (tw_peid) g_tw_mynode; e->send_lp = e->src_lp->gid; if (MPI_Isend(e, (int)EVENT_SIZE(e), MPI_BYTE, (int)dest_pe, EVENT_TAG, MPI_COMM_ROSS, &posted_sends.req_list[id]) != MPI_SUCCESS) { return changed; } tw_eventq_pop(&outq); e->state.owner = e->state.cancel_q ? TW_net_acancel : TW_net_asend; posted_sends.event_list[id] = e; posted_sends.cur++; me->s_nwhite_sent++; changed = 1; } return changed;}
开发者ID:carothersc,项目名称:ROSS,代码行数:53,
注:本文中的tw_error函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ tw_event_send函数代码示例 C++ tw_cli_dbg_printf函数代码示例 |