PlayerThread: unlock/lock in player_task()

This commit is contained in:
Max Kellermann 2013-09-26 23:58:41 +02:00
parent bcb2db62c9
commit d8c5a63bc2

View File

@ -912,8 +912,6 @@ player::SongBorder()
inline void inline void
player::Run() player::Run()
{ {
pc.Unlock();
pipe = new MusicPipe(); pipe = new MusicPipe();
StartDecoder(*pipe); StartDecoder(*pipe);
@ -923,8 +921,6 @@ player::Run()
StopDecoder(); StopDecoder();
player_command_finished(pc); player_command_finished(pc);
delete pipe; delete pipe;
GlobalEvents::Emit(GlobalEvents::PLAYLIST);
pc.Lock();
return; return;
} }
@ -1095,10 +1091,6 @@ player::Run()
pc.state = PLAYER_STATE_STOP; pc.state = PLAYER_STATE_STOP;
pc.Unlock(); pc.Unlock();
GlobalEvents::Emit(GlobalEvents::PLAYLIST);
pc.Lock();
} }
static void static void
@ -1127,7 +1119,10 @@ player_task(gpointer arg)
case PLAYER_COMMAND_QUEUE: case PLAYER_COMMAND_QUEUE:
assert(pc.next_song != NULL); assert(pc.next_song != NULL);
pc.Unlock();
do_play(pc, dc, buffer); do_play(pc, dc, buffer);
GlobalEvents::Emit(GlobalEvents::PLAYLIST);
pc.Lock();
break; break;
case PLAYER_COMMAND_STOP: case PLAYER_COMMAND_STOP: