epoll & fork
글쓴이: someday1117 / 작성시간: 수, 2010/04/28 - 8:09오후
epoll & fork 조합은 쓸수 없는 건가요?
모든 예제가 work thread 방식이네요..
manin process에서 accept가 들어 오면 fork해서 epoll을 사용할려고 합니다.
main() { efd = epoll_create(); ssock = socket(); bind(); listen(); epoll_ctl( ssock, ADD ); epoll_wait( efd ) if( ssock ) { csock = accept() { if( fork() == 0 ) { epoll_wait( efd ); if( csock ) { recv() & send(); } } } } }
대략적인 구조는 이렇습니다만... 흠..
뭔가가 이해가 안되는건지.. 아니면 구현이 원래 안되는 건지.. 헷갈리네요.. ㅠㅠ
뭔가가 힌트좀 주시면 감사하겠습니다.. ㅠㅠ
Forums:
anybody help me.. ㅠㅠ
plz~~~ -_ㅜ
리즐...
nginx 가 epoll 을
nginx 가 epoll 을 사용하고 worker processes 수를 조절 할 수 있더군요.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/
https://xenosi.de/
child에서 csock 의
child에서 csock 의 이벤트를 기다리기 위해 ADD 했나요?
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
아래와 같이 accept 후
아래와 같이 accept 후 add 하고
child 에 efd 와 client sock를 넘깁니다.
parent와 child에서 같은 efd로 epoll_wait했을 시 한쪽에서만 wake 되네요.. 에휴..ㅠㅠ
리즐...
fork 는
fork 는 fd 자체까지 메모리상에서 복사해버리기 때문에 안될겁니다...
그 전에 프로세스 차원에서 fd 를 공유한다는 것 자체가 어렵지 않을까 싶은데요...
프로세스 간에 통하는 정보는 IPC 밖에 없는 거 아니었나요? message queue 등.
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
fd를 공유하면 가능
fd를 공유하면 가능 할까요?
저도 가능 할까 싶어서 이거저것 알아 봤지만..
안될꺼 같은 생각이 드네요..
fd공유를 해도 epoll_wait시 wake는 한 프로세스밖에 안되는거 같더라고요..
그렇다고 모든 프로세스에 epoll_create를 할수도 없고.. ㅠㅠ
리즐...
댓글 달기