event lib 사용시에 비동기 처리가 되는지에 대한 질문입니다.

trymp의 이미지

Non-thread 프로그램상에서 아래와 같은 event library 를 사용한다고 할 때,

TCP 세션이 생기면 accept_cb() 가 호출되고 여기서 read event 시에 받은 data를

file write 같은 특정작업을 하고자 합니다.

이 때 file write 를 하고 있을 때 다른 tcp connection 이 오면 file write 를 하다가도 다시

accept_cb() 가 호출될수 있나요???

event lib 가 비동기적으로 지금 하던 작업을 중단하고 tcp connection 처리를 해서 multi-thread 처럼

사용될 수 있는지 궁금합니다.

고수님들의 많은 조언 부탁드립니다.

    struct event_base *base;
    struct evconnlistener *listener;
    struct sockaddr_in sin;
 
    base = event_base_new();
    if (base == NULL) {
            //Error handle
    }
 
    memset(&sin, 0, sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = htonl(INADDR_ANY);
    sin.sin_port = htons(90);
 
    listener = evconnlistener_new_bind(base, accept_cb, NULL,
                        LEV_OPT_CLOSE_ON_FREE|LEV_OPT_REUSEABLE, -1,
                        (struct sockaddr*)&sin, sizeof(sin));