diff options
author | Artem Savkov <sm00th.trac3r@gmail.com> | 2013-09-26 17:25:15 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-09-26 17:27:35 +0200 |
commit | 585b68d2ae024a9b0e567d5bb113231d3cdcb346 (patch) | |
tree | 366b797399d543a3bd7f25f25162c91d43c37fd9 /src | |
parent | 89d2d648cc3274eee31d426d0374c36a9e295059 (diff) | |
download | mpd-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.
Diffstat (limited to 'src')
-rw-r--r-- | src/input/CurlInputPlugin.cxx | 1 |
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(); } } |