aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/plugins/CurlInputPlugin.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-06-17 00:52:12 +0200
committerMax Kellermann <max@duempel.org>2014-06-17 02:32:17 +0200
commit8b84e5b3f975e4ad692b7cdcb1b7212b41f25cf1 (patch)
tree4800ec5056d5109a31a5c0c6682c92bf8aa59d7e /src/input/plugins/CurlInputPlugin.cxx
parente1d5ddb478cf8787f6472f14c0889af49b657c79 (diff)
downloadmpd-8b84e5b3f975e4ad692b7cdcb1b7212b41f25cf1.tar.gz
mpd-8b84e5b3f975e4ad692b7cdcb1b7212b41f25cf1.tar.xz
mpd-8b84e5b3f975e4ad692b7cdcb1b7212b41f25cf1.zip
input/curl: hold mutex while writing to postponed_error
Diffstat (limited to 'src/input/plugins/CurlInputPlugin.cxx')
-rw-r--r--src/input/plugins/CurlInputPlugin.cxx7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx
index 2450c8754..46961d08f 100644
--- a/src/input/plugins/CurlInputPlugin.cxx
+++ b/src/input/plugins/CurlInputPlugin.cxx
@@ -777,9 +777,10 @@ CurlInputStream::DoSeek(offset_type new_offset)
return;
}
+ Error error;
if (!InitEasy(postponed_error)) {
mutex.lock();
- SeekDone();
+ PostponeError(std::move(error));
return;
}
@@ -790,9 +791,9 @@ CurlInputStream::DoSeek(offset_type new_offset)
curl_easy_setopt(easy, CURLOPT_RANGE, range);
}
- if (!input_curl_easy_add_indirect(this, postponed_error)) {
+ if (!input_curl_easy_add_indirect(this, error)) {
mutex.lock();
- SeekDone();
+ PostponeError(std::move(error));
return;
}