mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-12 10:45:13 +01:00
Do not assume, that after g_usleep(G_USEC_PER_SEC) the newly started
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * tests/thread-test.c: Do not assume, that after g_usleep(G_USEC_PER_SEC) the newly started thread began running. Spotted by Miroslaw Dobrzanski-Neumann <mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads wait a random time. Make the test_g_static_rw_lock test run 5 seconds, not 1.
This commit is contained in:
parent
de3bfc0a74
commit
9c357424fc
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2002-02-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||||
|
|
||||||
|
* tests/thread-test.c: Do not assume, that after
|
||||||
|
g_usleep(G_USEC_PER_SEC) the newly started thread began
|
||||||
|
running. Spotted by Miroslaw Dobrzanski-Neumann
|
||||||
|
<mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
|
||||||
|
wait a random time. Make the test_g_static_rw_lock test run 5
|
||||||
|
seconds, not 1.
|
||||||
|
|
||||||
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
2002-02-14 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* glib/gmessages.c (g_logv): Use the #if branch with
|
* glib/gmessages.c (g_logv): Use the #if branch with
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
static GMutex* test_g_mutex_mutex = NULL;
|
static GMutex* test_g_mutex_mutex = NULL;
|
||||||
static guint test_g_mutex_int = 0;
|
static guint test_g_mutex_int = 0;
|
||||||
|
static gboolean test_g_mutex_thread_ready;
|
||||||
G_LOCK_DEFINE_STATIC (test_g_mutex);
|
G_LOCK_DEFINE_STATIC (test_g_mutex);
|
||||||
|
|
||||||
static gpointer
|
static gpointer
|
||||||
@ -12,6 +13,7 @@ test_g_mutex_thread (gpointer data)
|
|||||||
g_assert (GPOINTER_TO_INT (data) == 42);
|
g_assert (GPOINTER_TO_INT (data) == 42);
|
||||||
g_assert (g_mutex_trylock (test_g_mutex_mutex) == FALSE);
|
g_assert (g_mutex_trylock (test_g_mutex_mutex) == FALSE);
|
||||||
g_assert (G_TRYLOCK (test_g_mutex) == FALSE);
|
g_assert (G_TRYLOCK (test_g_mutex) == FALSE);
|
||||||
|
test_g_mutex_thread_ready = TRUE;
|
||||||
g_mutex_lock (test_g_mutex_mutex);
|
g_mutex_lock (test_g_mutex_mutex);
|
||||||
g_assert (test_g_mutex_int == 42);
|
g_assert (test_g_mutex_int == 42);
|
||||||
g_mutex_unlock (test_g_mutex_mutex);
|
g_mutex_unlock (test_g_mutex_mutex);
|
||||||
@ -27,9 +29,13 @@ test_g_mutex (void)
|
|||||||
|
|
||||||
g_assert (g_mutex_trylock (test_g_mutex_mutex));
|
g_assert (g_mutex_trylock (test_g_mutex_mutex));
|
||||||
g_assert (G_TRYLOCK (test_g_mutex));
|
g_assert (G_TRYLOCK (test_g_mutex));
|
||||||
|
test_g_mutex_thread_ready = FALSE;
|
||||||
thread = g_thread_create (test_g_mutex_thread, GINT_TO_POINTER (42),
|
thread = g_thread_create (test_g_mutex_thread, GINT_TO_POINTER (42),
|
||||||
TRUE, NULL);
|
TRUE, NULL);
|
||||||
g_usleep (G_USEC_PER_SEC);
|
/* This busy wait is only for testing purposes and not an example of
|
||||||
|
* good code!*/
|
||||||
|
while (!test_g_mutex_thread_ready)
|
||||||
|
g_usleep (G_USEC_PER_SEC / 5);
|
||||||
test_g_mutex_int = 42;
|
test_g_mutex_int = 42;
|
||||||
G_UNLOCK (test_g_mutex);
|
G_UNLOCK (test_g_mutex);
|
||||||
g_mutex_unlock (test_g_mutex_mutex);
|
g_mutex_unlock (test_g_mutex_mutex);
|
||||||
@ -41,6 +47,7 @@ test_g_mutex (void)
|
|||||||
|
|
||||||
static GStaticRecMutex test_g_static_rec_mutex_mutex = G_STATIC_REC_MUTEX_INIT;
|
static GStaticRecMutex test_g_static_rec_mutex_mutex = G_STATIC_REC_MUTEX_INIT;
|
||||||
static guint test_g_static_rec_mutex_int = 0;
|
static guint test_g_static_rec_mutex_int = 0;
|
||||||
|
static gboolean test_g_static_rec_mutex_thread_ready;
|
||||||
|
|
||||||
static gpointer
|
static gpointer
|
||||||
test_g_static_rec_mutex_thread (gpointer data)
|
test_g_static_rec_mutex_thread (gpointer data)
|
||||||
@ -48,9 +55,11 @@ test_g_static_rec_mutex_thread (gpointer data)
|
|||||||
g_assert (GPOINTER_TO_INT (data) == 42);
|
g_assert (GPOINTER_TO_INT (data) == 42);
|
||||||
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex)
|
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex)
|
||||||
== FALSE);
|
== FALSE);
|
||||||
|
test_g_static_rec_mutex_thread_ready = TRUE;
|
||||||
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
||||||
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
||||||
g_assert (test_g_static_rec_mutex_int == 42);
|
g_assert (test_g_static_rec_mutex_int == 42);
|
||||||
|
test_g_static_rec_mutex_thread_ready = FALSE;
|
||||||
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
||||||
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
||||||
|
|
||||||
@ -66,16 +75,25 @@ test_g_static_rec_mutex (void)
|
|||||||
GThread *thread;
|
GThread *thread;
|
||||||
|
|
||||||
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex));
|
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex));
|
||||||
|
test_g_static_rec_mutex_thread_ready = FALSE;
|
||||||
thread = g_thread_create (test_g_static_rec_mutex_thread,
|
thread = g_thread_create (test_g_static_rec_mutex_thread,
|
||||||
GINT_TO_POINTER (42), TRUE, NULL);
|
GINT_TO_POINTER (42), TRUE, NULL);
|
||||||
g_usleep (G_USEC_PER_SEC);
|
/* This busy wait is only for testing purposes and not an example of
|
||||||
|
* good code!*/
|
||||||
|
while (!test_g_static_rec_mutex_thread_ready)
|
||||||
|
g_usleep (G_USEC_PER_SEC / 5);
|
||||||
|
|
||||||
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex));
|
g_assert (g_static_rec_mutex_trylock (&test_g_static_rec_mutex_mutex));
|
||||||
g_usleep (G_USEC_PER_SEC);
|
|
||||||
test_g_static_rec_mutex_int = 41;
|
test_g_static_rec_mutex_int = 41;
|
||||||
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
||||||
test_g_static_rec_mutex_int = 42;
|
test_g_static_rec_mutex_int = 42;
|
||||||
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
||||||
g_usleep (G_USEC_PER_SEC);
|
|
||||||
|
/* This busy wait is only for testing purposes and not an example of
|
||||||
|
* good code!*/
|
||||||
|
while (test_g_static_rec_mutex_thread_ready)
|
||||||
|
g_usleep (G_USEC_PER_SEC / 5);
|
||||||
|
|
||||||
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_lock (&test_g_static_rec_mutex_mutex);
|
||||||
test_g_static_rec_mutex_int = 0;
|
test_g_static_rec_mutex_int = 0;
|
||||||
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
g_static_rec_mutex_unlock (&test_g_static_rec_mutex_mutex);
|
||||||
@ -224,7 +242,7 @@ test_g_static_rw_lock_thread (gpointer data)
|
|||||||
test_g_static_rw_lock_state++;
|
test_g_static_rw_lock_state++;
|
||||||
G_UNLOCK (test_g_static_rw_lock_state);
|
G_UNLOCK (test_g_static_rw_lock_state);
|
||||||
|
|
||||||
g_usleep (10);
|
g_usleep (g_random_int_range (20,1000));
|
||||||
|
|
||||||
G_LOCK (test_g_static_rw_lock_state);
|
G_LOCK (test_g_static_rw_lock_state);
|
||||||
test_g_static_rw_lock_state--;
|
test_g_static_rw_lock_state--;
|
||||||
@ -245,7 +263,7 @@ test_g_static_rw_lock_thread (gpointer data)
|
|||||||
test_g_static_rw_lock_state = -1;
|
test_g_static_rw_lock_state = -1;
|
||||||
G_UNLOCK (test_g_static_rw_lock_state);
|
G_UNLOCK (test_g_static_rw_lock_state);
|
||||||
|
|
||||||
g_usleep (10);
|
g_usleep (g_random_int_range (20,1000));
|
||||||
|
|
||||||
G_LOCK (test_g_static_rw_lock_state);
|
G_LOCK (test_g_static_rw_lock_state);
|
||||||
test_g_static_rw_lock_state = 0;
|
test_g_static_rw_lock_state = 0;
|
||||||
@ -267,7 +285,7 @@ test_g_static_rw_lock ()
|
|||||||
threads[i] = g_thread_create (test_g_static_rw_lock_thread,
|
threads[i] = g_thread_create (test_g_static_rw_lock_thread,
|
||||||
NULL, TRUE, NULL);
|
NULL, TRUE, NULL);
|
||||||
}
|
}
|
||||||
g_usleep (G_USEC_PER_SEC);
|
g_usleep (G_USEC_PER_SEC * 5);
|
||||||
test_g_static_rw_lock_run = FALSE;
|
test_g_static_rw_lock_run = FALSE;
|
||||||
for (i = 0; i < THREADS; i++)
|
for (i = 0; i < THREADS; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user