10 tw_lp *src_lp =
event->src_lp;
12 tw_pe *dest_pe = NULL;
38 event->send_lp = src_lp->
gid;
43 tw_error(
TW_LOC,
"Lookahead violation: decrease g_tw_lookahead %f\n"
44 "Event causing violation: src LP: %lu, src PE: %lu\n"
45 "dest LP %lu, dest PE %lu, recv_ts %f\n",
52 tw_error(
TW_LOC,
"It is an error to send an event with pre-loaded output message.");
59 dest_pe =
event->dest_lp->pe;
78 if(send_pe != dest_pe) {
101 event->state.cancel_q = 1;
108 tw_pe *send_pe =
event->src_lp->pe;
139 dest_peid =
event->dest_lp->pe->id;
142 if (send_pe->
id == dest_peid) {
166 }
else if ((
unsigned long)send_pe->
id == dest_peid) {
183 tw_lp *dest_lp =
event->dest_lp;
203 goto jump_over_rc_event_handler;
213 goto jump_over_rc_event_handler;
221 jump_over_rc_event_handler:
226 event->delta_buddy = 0;
tw_synch g_tw_synchronization_protocol
void * delta_buddy
Delta memory from buddy allocator.
tw_lp * dest_lp
Destination LP ID.
tw_eventq event_q
Linked list of events sent to this PE.
void tw_net_cancel(tw_event *e)
Cancel the given remote event by either removing from the outq or sending an antimessage, depending on the status of the original positive send.
revent_f revent
LP Reverse event handler routine.
struct st_lp_stats * lp_stats
unsigned int critical_path
Critical path value for this LP.
void tw_error(const char *file, int line, const char *fmt,...) NORETURN
tw_lptype * type
Type of this LP, including service callbacks.
struct st_kp_stats * kp_stats
tw_statistics stats
per PE counters
tw_stime recv_ts
Actual time to be received.
static tw_clock tw_clock_read(void)
static void tw_event_free(tw_pe *, tw_event *)
map_f map
LP Mapping of LP gid -> remote PE routine.
tw_stime trans_msg_ts
Last transient messages' time stamp.
Holds the entire PE state.
Network transmission in progress.
unsigned int suspend_flag
tw_event * cancel_q
List of canceled events.
tw_bf cv
Used by app during reverse computation.
tw_out * out_msgs
Output messages.
static void event_cancel(tw_event *event)
tw_eventid seq_num
Array of remote send counters for hashing on, size == g_tw_npe.
tw_kp * kp
kp – Kernel process that we belong to (must match pe).
unsigned int suspend_do_orig_event_rc
tw_stat s_nsend_net_remote
void tw_pq_delete_any(splay_tree *st, tw_event *r)
#define TW_STIME_CMP(x, y)
tw_event * abort_event
Placeholder event for when free_q is empty.
static tw_stime tw_now(tw_lp const *lp)
tw_event * cur_event
Current event being processed.
static void * tw_event_data(tw_event *event)
unsigned int suspend_error_number
static int tw_gvt_inprogress(tw_pe *pe)
void tw_pq_enqueue(splay_tree *st, tw_event *e)
tw_event * cause_next
Next in parent's caused_by_me chain.
tw_event * caused_by_me
Start of event list caused by this event.
long s_e_rbs
Number of events rolled back by this LP.
tw_pq * pq
Priority queue used to sort events.
static void link_causality(tw_event *nev, tw_event *cev)
Pending network transmission.
static void tw_eventq_push(tw_eventq *q, tw_event *e)
void buddy_free(void *ptr)
static void tw_free_output_messages(tw_event *e, int print_message)
tw_stat s_nsend_loc_remote
struct tw_event::@0 state
void tw_event_send(tw_event *event)
void * cur_state
Current application LP data.
void tw_net_send(tw_event *e)
Adds the event to the outgoing queue of events to be sent, polls for finished sends, and attempts to start sends from outq.
static void local_cancel(tw_pe *d, tw_event *event)
void io_event_cancel(tw_event *e)
static tw_lp * tw_getlocal_lp(tw_lpid gid)
tw_stime last_time
Time of the current event being processed.
unsigned char cev_abort
Current event being processed must be aborted.
void tw_event_rollback(tw_event *event)
unsigned char owner
Owner of the next/prev pointers; see tw_event_owner.