aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Savkov <sm00th.trac3r@gmail.com>2013-09-26 17:25:15 +0200
committerMax Kellermann <max@duempel.org>2013-09-26 17:27:35 +0200
commit585b68d2ae024a9b0e567d5bb113231d3cdcb346 (patch)
tree366b797399d543a3bd7f25f25162c91d43c37fd9
parent89d2d648cc3274eee31d426d0374c36a9e295059 (diff)
downloadmpd-585b68d2ae024a9b0e567d5bb113231d3cdcb346.tar.gz
mpd-585b68d2ae024a9b0e567d5bb113231d3cdcb346.tar.xz
mpd-585b68d2ae024a9b0e567d5bb113231d3cdcb346.zip
input/curl: fix EventLoop stall after curl_easy_pause
When playing finite http streams, e.g. something from soundcloud, eventloop stalls after pausing writefunc. TimeoutMonitor is cancelled by the time resume happens, so when enough data is consumed writefunc is called only once. Calling InvalidateSockets() from input_curl_resume() seems to fix the issue.
-rw-r--r--src/input/CurlInputPlugin.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/input/CurlInputPlugin.cxx b/src/input/CurlInputPlugin.cxx
index fb0401fd8..2c99f5c38 100644
--- a/src/input/CurlInputPlugin.cxx
+++ b/src/input/CurlInputPlugin.cxx
@@ -245,6 +245,7 @@ input_curl_resume(struct input_curl *c)
if (c->paused) {
c->paused = false;
curl_easy_pause(c->easy, CURLPAUSE_CONT);
+ curl.sockets->InvalidateSockets();
}
}