int BProcessManager_Init (BProcessManager *o, BReactor *reactor) { // init arguments o->reactor = reactor; // init signal handling sigset_t sset; ASSERT_FORCE(sigemptyset(&sset) == 0) ASSERT_FORCE(sigaddset(&sset, SIGCHLD) == 0) if (!BUnixSignal_Init(&o->signal, o->reactor, sset, (BUnixSignal_handler)signal_handler, o)) { BLog(BLOG_ERROR, "BUnixSignal_Init failed"); goto fail0; } // init processes list LinkedList2_Init(&o->processes); // init wait job BPending_Init(&o->wait_job, BReactor_PendingGroup(o->reactor), (BPending_handler)wait_job_handler, o); DebugObject_Init(&o->d_obj); return 1; fail0: return 0; }
void PacketPassFifoQueue_Init (PacketPassFifoQueue *o, PacketPassInterface *output, BPendingGroup *pg) { // init arguments o->output = output; o->pg = pg; // init output PacketPassInterface_Sender_Init(output, (PacketPassInterface_handler_done)output_handler_done, o); // init waiting flows list LinkedList1_Init(&o->waiting_flows_list); // set no sending flow o->sending_flow = NULL; // init schedule job BPending_Init(&o->schedule_job, pg, (BPending_handler)schedule_job_handler, o); // set not freeing o->freeing = 0; DebugCounter_Init(&o->d_flows_ctr); DebugObject_Init(&o->d_obj); }