[Twisted-Python] Non-blocking UDP output?
newptcai at gmail.com
Mon Nov 17 02:47:29 EST 2008
Today I read this line in "Unix Networking Programming". It seems
that UDP output might be blocking.
We also said in Section 2.11 that there is no actual UDP
socket send buffer. The kernel just copies the application data and
moves it down the stack, prepending the UDP and IP headers. Therefore,
an output operation on a blocking UDP socket (the default) will not
block for the same reason as a TCP socket, but it is possible for
output operations to block on some systems due to the buffering and
flow control that happens within the networking code in the kernel.
But as far as I know, when I write "transport.write" in twisted code,
it actually called "sendto" on the socket without using "select".
Doesn't this conflict with the "non-blocking" philosophy of twisted?
More information about the Twisted-Python