mirror of https://github.com/mkerrisk/man-pages
rewordings/edits
This commit is contained in:
parent
04bb6cc0aa
commit
69eb01fd61
33
man7/epoll.7
33
man7/epoll.7
|
@ -50,33 +50,28 @@ The
|
|||
.B epoll
|
||||
event distribution interface is able to behave both as edge-triggered
|
||||
(ET) and level-triggered (LT).
|
||||
The difference between ET and LT
|
||||
event distribution mechanism can be described as follows.
|
||||
The difference between the two mechanisms
|
||||
can be described as follows.
|
||||
Suppose that
|
||||
this scenario happens :
|
||||
.TP
|
||||
.B 1
|
||||
.IP 1. 3
|
||||
The file descriptor that represents the read side of a pipe
|
||||
.RI ( rfd )
|
||||
is added inside the
|
||||
.B epoll
|
||||
device.
|
||||
.TP
|
||||
.B 2
|
||||
A pipe writer writes 2Kb of data on the write side of the pipe.
|
||||
.TP
|
||||
.B 3
|
||||
.IP 2.
|
||||
A pipe writer writes 2 kB of data on the write side of the pipe.
|
||||
.IP 3.
|
||||
A call to
|
||||
.BR epoll_wait (2)
|
||||
is done that will return
|
||||
.I rfd
|
||||
as a ready file descriptor.
|
||||
.TP
|
||||
.B 4
|
||||
The pipe reader reads 1Kb of data from
|
||||
.IP 4.
|
||||
The pipe reader reads 1 kB of data from
|
||||
.IR rfd .
|
||||
.TP
|
||||
.B 5
|
||||
.IP 5.
|
||||
A call to
|
||||
.BR epoll_wait (2)
|
||||
is done.
|
||||
|
@ -95,8 +90,8 @@ will probably hang despite the available data still present in the file
|
|||
input buffer;
|
||||
meanwhile the remote peer might be expecting a response based on the
|
||||
data it already sent.
|
||||
The reason for this is that edge-triggered event
|
||||
distribution delivers events only when events happens on the monitored file.
|
||||
The reason for this is that edge-triggered mode only
|
||||
delivers events when changes occur on the monitored file descriptor.
|
||||
So, in step
|
||||
.B 5
|
||||
the caller might end up waiting for some data that is already present inside
|
||||
|
@ -131,7 +126,7 @@ interface is as follows:
|
|||
with non-blocking file descriptors
|
||||
.TP
|
||||
.B ii
|
||||
by going to wait for an event only after
|
||||
by waiting for an event only after
|
||||
.BR read (2)
|
||||
or
|
||||
.BR write (2)
|
||||
|
@ -218,7 +213,7 @@ for(;;) {
|
|||
When used as an edge-triggered interface, for performance reasons, it is
|
||||
possible to add the file descriptor inside the epoll interface
|
||||
.RB ( EPOLL_CTL_ADD )
|
||||
) once by specifying
|
||||
once by specifying
|
||||
.RB ( EPOLLIN | EPOLLOUT ).
|
||||
This allows you to avoid
|
||||
continuously switching between
|
||||
|
@ -232,7 +227,7 @@ with
|
|||
.SS Questions and Answers
|
||||
.TP
|
||||
.B Q1
|
||||
What happens if you add the same file descriptor to an epoll_set twice?
|
||||
What happens if you add the same file descriptor to an epoll set twice?
|
||||
.TP
|
||||
.B A1
|
||||
You will probably get EEXIST.
|
||||
|
|
Loading…
Reference in New Issue