summaryrefslogtreecommitdiff
path: root/.gitignore
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2014-01-09 18:06:19 +0000
committerOlivier CrĂȘte <olivier.crete@collabora.com>2014-01-31 01:48:59 -0500
commitd285b5a53fe2446dc6778c334b30a965d08bfb56 (patch)
treef33d8a8934af91d527b30ff85328d32564a296e5 /.gitignore
parentcf9d3f18e6b0b0eaee701aaf61ae88b4819f360c (diff)
downloadlibnice-d285b5a53fe2446dc6778c334b30a965d08bfb56.tar.gz
agent: Always emit a readable callback when pseudo-TCP data arrives
Previously, the pseudo-TCP implementation’s readable() callback would only be invoked when new data was received if it was enabled. The callback is enabled by reading all data from the TCP input buffer until EWOULDBLOCK is returned. Reading all that data is not possible if the client buffer is of a limited size, and can lead to livelocks if the client reads exactly the number of bytes in the TCP input buffer (i.e. its buffer size matches the TCP buffer fill level). Instead, always invoke the readable() callback. This might be slightly less performant, but the whole pseudo-TCP implementation is a shambles anyway, and the callbacks need removing, so why not?
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions