이벤트 루프를 직접 구현하려면 어떻게 해야 하나요?
마우스 클릭같은 OS에서 제공하는 이벤트 말고 프로그램 내부에서만 자체적으로 사용하는 이벤트 루프를 만들고 싶어요. 그리고 가능하다면 OS에 비의존적으로 구현하면 좋겠어요. 대충 알기로는 큐에 이벤트를 던져 놓고 무한 루프를 돌리면서 이벤트를 처리하라는 개념인데 코드 한 줄 실행할 때마다 이벤트 큐를 확인할 수는 없는 노릇이잖아요. 좀 더 구체적으로 알고 싶습니다.
glib의 이벤트루프 소스를 보면 pipe를 열어놓고 해당 pipe를 select 걸어둡니다.
물론 이벤트를 발생시키는 쪽에선 pipe에다가 write를 하고요.
WIN32일 경우에는 세마포어를 사용하는 것 같습니다.
자세한 건 glib 소스을 확인해보세요.
---- 데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
http://www.monkey.org/~provos/libevent/
http://software.schmorp.de/pkg/libev.html
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
glib의 이벤트루프
glib의 이벤트루프 소스를 보면 pipe를 열어놓고 해당 pipe를 select 걸어둡니다.
물론 이벤트를 발생시키는 쪽에선 pipe에다가 write를 하고요.
WIN32일 경우에는 세마포어를 사용하는 것 같습니다.
자세한 건 glib 소스을 확인해보세요.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
공개된 라이브러리를 이용해 보시지요.
http://www.monkey.org/~provos/libevent/
http://software.schmorp.de/pkg/libev.html
댓글 달기