RTS 에서 파일 디스크립터마다 고유의 데이터를 부가할 수 있을까요?
epoll 은 fd 에 입출력 이벤트가 발생한 경우, epoll_ctl 호출시 struct epoll_event* 인자에 저장해둔 포인터값을 얻어올 수 있습니다.
그런데 RTS 로 이와같은 구현을 어떻게 할 수 있는지 모르겠는데요.
sigqueue 에 의해 sigval 을 보낼 수는 있지만, 입출력 시그널이 발생할 때 sigval 을 보내는 방법은 찾지 못했습니다.
그래서 지난번에 다음과 같은 질문을 올렸습니다만,
http://bbs.kldp.org/viewtopic.php?t=69025
제가 구현하려는 의도에 너무 치우쳐서 제가 알고싶은 본질을 제대로 전달하지 못했던 것 같아 다시 질문 드립니다. RTS 에 의해 어떻게 할 수 있는지를 결국 못찾았기 때문에, fd 에 임의 포인터를 대응시킬 방법이 있을지 모른다는 생각에 지난번과 같은 질문을 드렸었구요. 이 방법도 찾지 못했습니다.
결국 RTS 가 이것을 지원하지 않는다면, 해쉬로 구현할 생각이고, 오늘 다음과 같은 소스를 찾았습니다.
http://chonga.pe.kr/computer/linux/highperfsvr/examples/rtsig_echoserver.cpp
이 소스에서는 g_fdlist[fd]와 같은 방법으로 구현하고 있고, 대안이 없을 경우 제가 하려던 방법과 일치하네요. 스펙에 준하는 것 같은 문서도 읽어봤는데, 속시원히 된다/안된다를 알기가 어려웠습니다. 확실히 '안된다'만 알아도 좋겠습니다.
댓글 달기