int main( int argc, char ** argv )
{
    uint8_t i = 0;
    uint16_t port = 0;
    uint8_t threadcount = 0;

    struct acceptor * a = NULL;
    struct iothread ** thrgroup = NULL;

    if ( argc != 3 )
    {
        printf("echoserver [port] [threadcount] .\n");
        return 0;
    }

    signal( SIGPIPE, SIG_IGN );
    signal( SIGINT, echoserver_signal_handler );
    signal( SIGTERM, echoserver_signal_handler );

    port = (uint16_t)atoi( argv[1] );
    threadcount = (uint8_t)atoi( argv[2] );

    a = acceptor_create( "127.0.0.1", port );

    thrgroup = (struct iothread **)malloc( threadcount*sizeof(struct iothread *) );
    for ( i = 0; i < threadcount; ++i )
    {
        thrgroup[i] = iothread_create( i+1, a );
    }

    isstarted = 1;
    while ( isstarted )
    {
    #if defined(__FreeBSD__)
        sleep(2);
    #else
        pause();
    #endif
    }

    for ( i = 0; i < threadcount; ++i )
    {
        evsets_destroy( thrgroup[i]->core_sets );
    }

    return 0;
}
Beispiel #2
0
void* evnet_createacceptor(unsigned short port, pfn_msg_handler handler, void *pUsr)
{
    return acceptor_create(port, handler, pUsr);
}