EPOLLONESHOT이 지정된 경우 레벨 트리거 및 에지 트리거 모드의 차이점은 무엇입니까?epoll : EPOLLONESHOT이 지정된 경우 트리거 된 레벨과 에지 트리거 된 트리거의 차이
이미 비슷한 질문이 here입니다. "Crouching Kitten"의 대답은 옳지 않은 것 같습니다. (이해할 수있는 한 다른 대답은 내 질문에 답하지 않습니다.)
나는 다음 시도했다 : 클라이언트가 epoll_wait
에서 epoll_wait
- 서버가 클라이언트에 2 바이트를 전송 한 후 1 바이트를 읽습니다.
- 클라이언트가 이벤트를 다시 처리합니다 (EPOLLONESHOT 때문에)
- 고객은
epoll_wait
을 다시 호출합니다. 여기, 두 경우 모두 (LT & ET)에 대한epoll_wait
대기하지 않지만, ("웅크 리고 새끼"로 대답에 반대를) 즉시 반환 - 클라이언트는 어떤 차이가 두 번째 바이트
를 읽을 수 있습니다 LT & ET 사이, EPOLLONESHOT을 지정할 때?
위의 코드를 게시 할 수 있다면 좋을 것입니다. 나는 네가 네가 주장한 것을했다고 믿지만, 따라 오는 다음 사람에게 더 좋은 질문을 할 것이다. –
@ShacharShemesh : 불행히도이 코드는 더 큰 프레임 워크의 일부입니다. 하지만, 나는 커널 소스 코드를 체크 아웃했는데, EPOLLONESHOT이 지정되면, 이해할 수 있듯이 LT와 ET 사이에는 아무런 차이가 없다. 나는 잠시 동안 기다릴 것이고, 아무 대답도 도착하지 않으면, 나는 내 자신의 질문에 대답 할 것이다. – geza
저녁 식사와 함께 답변 작성을 중단하면 이런 일이 발생합니다. 사람들은 자신의 부재로 자신의 대답을 찾습니다 .-) –