diff --git a/src/midi/fluid_midi.c b/src/midi/fluid_midi.c index 86166d8ff..796b278fe 100644 --- a/src/midi/fluid_midi.c +++ b/src/midi/fluid_midi.c @@ -2195,7 +2195,8 @@ fluid_player_play(fluid_player_t *player) int fluid_player_stop(fluid_player_t *player) { - fluid_atomic_int_set(&player->status, FLUID_PLAYER_STOPPING); + fluid_atomic_int_compare_and_exchange(&player->status, FLUID_PLAYER_READY, FLUID_PLAYER_STOPPING); + fluid_atomic_int_compare_and_exchange(&player->status, FLUID_PLAYER_PLAYING, FLUID_PLAYER_STOPPING); fluid_player_seek(player, fluid_player_get_current_tick(player)); return FLUID_OK; }