diff options
author | Max Kellermann <max@duempel.org> | 2011-01-10 21:54:43 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-01-10 21:54:43 +0100 |
commit | db4aa81528f4d85110dca56c888e956391959f32 (patch) | |
tree | d07b08d80df12acef138697ccaf0dd22f71bede2 | |
parent | 319ba94a527ac29d3b42543f0f9679a60bc308d6 (diff) | |
download | mpd-db4aa81528f4d85110dca56c888e956391959f32.tar.gz mpd-db4aa81528f4d85110dca56c888e956391959f32.tar.xz mpd-db4aa81528f4d85110dca56c888e956391959f32.zip |
output_control: move code to ao_lock_command()
-rw-r--r-- | src/output_control.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/output_control.c b/src/output_control.c index 371730ef2..2c0e113ec 100644 --- a/src/output_control.c +++ b/src/output_control.c @@ -62,6 +62,18 @@ ao_command(struct audio_output *ao, enum audio_output_command cmd) ao_command_wait(ao); } +/** + * Lock the #audio_output object and execute the command + * synchronously. + */ +static void +ao_lock_command(struct audio_output *ao, enum audio_output_command cmd) +{ + g_mutex_lock(ao->mutex); + ao_command(ao, cmd); + g_mutex_unlock(ao->mutex); +} + void audio_output_enable(struct audio_output *ao) { @@ -77,9 +89,7 @@ audio_output_enable(struct audio_output *ao) audio_output_thread_start(ao); } - g_mutex_lock(ao->mutex); - ao_command(ao, AO_COMMAND_ENABLE); - g_mutex_unlock(ao->mutex); + ao_lock_command(ao, AO_COMMAND_ENABLE); } void @@ -96,9 +106,7 @@ audio_output_disable(struct audio_output *ao) return; } - g_mutex_lock(ao->mutex); - ao_command(ao, AO_COMMAND_DISABLE); - g_mutex_unlock(ao->mutex); + ao_lock_command(ao, AO_COMMAND_DISABLE); } static void @@ -284,9 +292,7 @@ void audio_output_finish(struct audio_output *ao) assert(ao->fail_timer == NULL); if (ao->thread != NULL) { - g_mutex_lock(ao->mutex); - ao_command(ao, AO_COMMAND_KILL); - g_mutex_unlock(ao->mutex); + ao_lock_command(ao, AO_COMMAND_KILL); g_thread_join(ao->thread); } |