From a378db54fb95a265523da1c53043efdea20cedda Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Thu, 21 Dec 2006 14:24:54 +0000 Subject: [PATCH] tests/check/elements/queue.c: fix race in underrun test Original commit message from CVS: * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), (GST_START_TEST): fix race in underrun test --- ChangeLog | 6 ++++++ tests/check/elements/queue.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 057001df76..db1b6b7676 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-12-21 Stefan Kost + + * tests/check/elements/queue.c: (queue_overrun), (queue_underrun), + (GST_START_TEST): + fix race in underrun test + 2006-12-21 Stefan Kost * tests/check/elements/.cvsignore: diff --git a/tests/check/elements/queue.c b/tests/check/elements/queue.c index a30212beee..176f2dec9d 100644 --- a/tests/check/elements/queue.c +++ b/tests/check/elements/queue.c @@ -53,7 +53,10 @@ static void queue_underrun (GstElement * queue, gpointer user_data) { GST_DEBUG ("queue underrun"); + g_mutex_lock (check_mutex); underrun_count++; + g_cond_signal (check_cond); + g_mutex_unlock (check_mutex); } GstElement * @@ -99,12 +102,13 @@ GST_START_TEST (test_non_leaky_underrun) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - /* do we need to wait here a little */ - usleep (100); - /**/ GST_DEBUG ("running"); + GST_DEBUG ("running"); + g_mutex_lock (check_mutex); + g_cond_wait (check_cond, check_mutex); + g_mutex_unlock (check_mutex); fail_unless (overrun_count == 0); - fail_unless (underrun_count > 0); + fail_unless (underrun_count == 1); fail_unless (buffer == NULL);