Esempio n. 1
0
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;
}
Esempio n. 2
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);
}