
EvLoop::embed는 C++의 EvLoop에 embed된 루틴을 정의하는 방법입니다. embed 루틴은 EvLoop에 등록된 루틴과 달리, EvLoop의 생명주기와 함께 동작합니다.
embed 루틴의 생명주기는 EvLoop의 생명주기와 동일합니다. EvLoop이 종료되면 embed 루틴도 종료됩니다. embed 루틴은 EvLoop의 이벤트 루프에 등록되지 않기 때문에, EvLoop이 종료되면 embed 루틴의 등록이 자동으로 해제됩니다.
예제 코드를 통해 embed 루틴의 생명주기를 관리하는 방법을 설명해 드리겠습니다.
#hostingforum.kr
cpp
#include
// embed 루틴
void embed_cb(struct ev_loop *loop, ev_prepare *w, int revents) {
// embed 루틴의 코드
printf("embed 루틴이 호출되었습니다.n");
}
int main() {
// EvLoop 초기화
ev_loop *loop = ev_default_loop(0);
// embed 루틴 등록
ev_prepare_init(&embed_w);
ev_prepare_set_cb(&embed_w, embed_cb);
ev_prepare_start(loop, &embed_w);
// EvLoop 이벤트 루프 시작
ev_run(loop, 0);
// EvLoop 종료
ev_loop_destroy(loop);
return 0;
}
위 예제 코드에서, embed 루틴은 EvLoop의 이벤트 루프에 등록되지 않습니다. EvLoop이 종료되면 embed 루틴도 종료됩니다. embed 루틴의 생명주기는 EvLoop의 생명주기와 동일합니다.
2025-07-30 03:07