From d8c5a63bc23e725ac6ee220a40a2c961b2d5ec69 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 26 Sep 2013 23:58:41 +0200 Subject: PlayerThread: unlock/lock in player_task() --- src/PlayerThread.cxx | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx index 543c1fcae..02f60546f 100644 --- a/src/PlayerThread.cxx +++ b/src/PlayerThread.cxx @@ -912,8 +912,6 @@ player::SongBorder() inline void player::Run() { - pc.Unlock(); - pipe = new MusicPipe(); StartDecoder(*pipe); @@ -923,8 +921,6 @@ player::Run() StopDecoder(); player_command_finished(pc); delete pipe; - GlobalEvents::Emit(GlobalEvents::PLAYLIST); - pc.Lock(); return; } @@ -1095,10 +1091,6 @@ player::Run() pc.state = PLAYER_STATE_STOP; pc.Unlock(); - - GlobalEvents::Emit(GlobalEvents::PLAYLIST); - - pc.Lock(); } static void @@ -1127,7 +1119,10 @@ player_task(gpointer arg) case PLAYER_COMMAND_QUEUE: assert(pc.next_song != NULL); + pc.Unlock(); do_play(pc, dc, buffer); + GlobalEvents::Emit(GlobalEvents::PLAYLIST); + pc.Lock(); break; case PLAYER_COMMAND_STOP: -- cgit v1.2.3