diff --git a/src/gst-audio-source.cc b/src/gst-audio-source.cc
index ae17dc962777e8ddb013e5f54edbc6fbbcf411e1..7745357a67f674536c925e39a69db4c4f0d2f421 100644
--- a/src/gst-audio-source.cc
+++ b/src/gst-audio-source.cc
@@ -56,8 +56,8 @@ void GstBufferSource::PushBuffer(GstBuffer *buf) {
 }
 
 void GstBufferSource::SetEnded(bool ended) {
-  ended_ = ended;
   g_mutex_lock(&lock_);
+  ended_ = ended;
   g_cond_signal(&data_cond_);
   g_mutex_unlock(&lock_);
 }