void ciReceiverTypeData::translate_receiver_data_from(ProfileData* data) { for (uint row = 0; row < row_limit(); row++) { klassOop k = data->as_ReceiverTypeData()->receiver(row); if (k != NULL) { ciKlass* klass = CURRENT_ENV->get_object(k)->as_klass(); set_receiver(row, klass); } } }
void ciVirtualCallData::translate_from(ProfileData* data) { for (uint row = 0; row < row_limit(); row++) { klassOop k = data->as_VirtualCallData()->receiver(row); if (k) { ciKlass* klass = CURRENT_ENV->get_object(k)->as_klass(); set_receiver(row, klass); } } };
void ciReceiverTypeData::translate_receiver_data_from(const ProfileData* data) { for (uint row = 0; row < row_limit(); row++) { Klass* k = data->as_ReceiverTypeData()->receiver(row); if (k != NULL) { ciKlass* klass = CURRENT_ENV->get_klass(k); CURRENT_ENV->ensure_metadata_alive(klass); set_receiver(row, klass); } } }
void Ipc_sender<Derived>::send_msg(Receiver *receiver) { set_receiver(receiver); if (!Config::Irq_shortcut) { // in profile mode, don't optimize // in non-profile mode, enqueue _after_ shortcut if still necessary sender_enqueue(receiver->sender_list(), 255); receiver->vcpu_set_irq_pending(); } // if the thread is waiting for this interrupt, make it ready; // this will cause it to run irq->receiver_ready(), which // handles the rest // XXX careful! This code may run in midst of an do_ipc() // operation (or similar)! if (Receiver::Rcv_state s = receiver->sender_ok(this)) { Syscall_frame *dst_regs = derived()->transfer_msg(receiver); if (derived()->requeue_sender()) { sender_enqueue(receiver->sender_list(), 255); receiver->vcpu_set_irq_pending(); } // ipc completed receiver->state_change_dirty(~Thread_ipc_mask, 0); // in case a timeout was set receiver->reset_timeout(); if (s == Receiver::Rs_ipc_receive) { if (handle_shortcut(dst_regs, receiver)) return; } // we don't need to manipulate the state in a safe way // because we are still running with interrupts turned off receiver->state_add_dirty(Thread_ready); receiver->sched()->deblock(receiver->cpu()); return; } if (Config::Irq_shortcut) { // in profile mode, don't optimize // in non-profile mode, enqueue after shortcut if still necessary sender_enqueue(receiver->sender_list(), 255); receiver->vcpu_set_irq_pending(); } }
int main() { /* initialize the font */ font_init(); /* initialize timer */ timer_init(); /* allocate a window */ win = window_alloc("Qonsole", /* title */ font_width*80, /* width */ font_height*25, /* height */ -1, /* x (random) */ -1, /* y (random) */ 0xFF000000, /* bg color */ "/usr/share/icons/qonsole16.png" /* iconfile */); /* initialize window event handlers */ win->press = pstty_press; /* initialize pstty */ pstty_init(); /* execute the shell */ exec_shell("/bin/rash"); /* set receiver */ set_receiver(pstty_event); /* loop */ gui_loop(); /* done */ return 0; }
void PageControl::initialize(std::string receiver_name) { set_receiver(receiver_name); }