示例#1
0
文件: main.cpp 项目: comarius/pizu
int main(int nargs, char * vargs[])
{
    if(!single_instance_dmn(nargs, vargs,"pizu")) {
        return 0;
    }
    system("sync");
    signal(SIGINT,  ControlC);
    signal(SIGABRT, ControlC);
    signal(SIGKILL, ControlC);
    signal(SIGTRAP, SIG_IGN);
    signal(SIGPIPE, SIG_IGN);

    Conf   f;
    f.load("pizu.conf");
    GCFG = &f;
    Modules m;
    __modules = &m; //as well

    if(!m.is_not_empty()) {
        std::cout << "Cannot load modules. At least libhtml_mod.so should be build. \n";
        return -1;
    }

    do {

        ThreadPool  tpa(false); //asyncronous. replies that flows
        Listeners   thel(&tpa);

        __pl = &thel;  // ugly
        __tp = &tpa;
        if(thel.start_thread()!=0)
            break;
        if(tpa.start_thread()!=0)
            break;

        while( thel.san() && __alive) {
            usleep(0xFFFF);
        }

    } while(__alive);

    __tp = 0;
    __pl = 0;

    printf("ALL OBJECTS GONE \n");
    return 0;
}