diff options
author | Max Kellermann <max@duempel.org> | 2013-01-27 17:20:50 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-01-27 18:39:32 +0100 |
commit | 6f3d70b5e24cebbd6fd8c3a665a801628ef912ff (patch) | |
tree | 88ab67b76bac4b88422c3debe7c46d6168a71934 /src/InputStream.cxx | |
parent | 257a0dee758049586efbf0dc3f0339b0cef03456 (diff) | |
download | mpd-6f3d70b5e24cebbd6fd8c3a665a801628ef912ff.tar.gz mpd-6f3d70b5e24cebbd6fd8c3a665a801628ef912ff.tar.xz mpd-6f3d70b5e24cebbd6fd8c3a665a801628ef912ff.zip |
DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond
Diffstat (limited to 'src/InputStream.cxx')
-rw-r--r-- | src/InputStream.cxx | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/InputStream.cxx b/src/InputStream.cxx index e55450d91..c9d7f2123 100644 --- a/src/InputStream.cxx +++ b/src/InputStream.cxx @@ -38,12 +38,11 @@ input_quark(void) struct input_stream * input_stream_open(const char *url, - GMutex *mutex, GCond *cond, + Mutex &mutex, Cond &cond, GError **error_r) { GError *error = NULL; - assert(mutex != NULL); assert(error_r == NULL || *error_r == NULL); input_plugins_for_each_enabled(plugin) { @@ -102,7 +101,7 @@ input_stream_wait_ready(struct input_stream *is) if (is->ready) break; - g_cond_wait(is->cond, is->mutex); + is->cond->wait(*is->mutex); } } @@ -113,9 +112,8 @@ input_stream_lock_wait_ready(struct input_stream *is) assert(is->mutex != NULL); assert(is->cond != NULL); - g_mutex_lock(is->mutex); + const ScopeLock protect(*is->mutex); input_stream_wait_ready(is); - g_mutex_unlock(is->mutex); } const char * @@ -197,10 +195,8 @@ input_stream_lock_seek(struct input_stream *is, goffset offset, int whence, /* no locking */ return input_stream_seek(is, offset, whence, error_r); - g_mutex_lock(is->mutex); - bool success = input_stream_seek(is, offset, whence, error_r); - g_mutex_unlock(is->mutex); - return success; + const ScopeLock protect(*is->mutex); + return input_stream_seek(is, offset, whence, error_r); } struct tag * @@ -227,10 +223,8 @@ input_stream_lock_tag(struct input_stream *is) /* no locking */ return input_stream_tag(is); - g_mutex_lock(is->mutex); - struct tag *tag = input_stream_tag(is); - g_mutex_unlock(is->mutex); - return tag; + const ScopeLock protect(*is->mutex); + return input_stream_tag(is); } bool @@ -265,10 +259,8 @@ input_stream_lock_read(struct input_stream *is, void *ptr, size_t size, /* no locking */ return input_stream_read(is, ptr, size, error_r); - g_mutex_lock(is->mutex); - size_t nbytes = input_stream_read(is, ptr, size, error_r); - g_mutex_unlock(is->mutex); - return nbytes; + const ScopeLock protect(*is->mutex); + return input_stream_read(is, ptr, size, error_r); } void input_stream_close(struct input_stream *is) @@ -291,9 +283,7 @@ input_stream_lock_eof(struct input_stream *is) /* no locking */ return input_stream_eof(is); - g_mutex_lock(is->mutex); - bool eof = input_stream_eof(is); - g_mutex_unlock(is->mutex); - return eof; + const ScopeLock protect(*is->mutex); + return input_stream_eof(is); } |