#include <config.h>
#include <glib.h>
+#include <glib-object.h>
#define DBUS_COMPILATION /* this test uses libdbus-internal */
#include <dbus/dbus.h>
VoidFunc unlock;
} Thread;
+/* provide backwards compatibility shim when building with a glib <= 2.30.x */
+#if !GLIB_CHECK_VERSION(2,31,0)
+#define g_thread_new(name,func,data) g_thread_create(func,data,TRUE,NULL)
+#endif
+
static gpointer
ref_thread (gpointer data)
{
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (ref_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &public_api);
else
- f->threads[i] = g_thread_create (ref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (cycle_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &public_api);
else
- f->threads[i] = g_thread_create (cycle_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (unref_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &public_api);
else
- f->threads[i] = g_thread_create (unref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (ref_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &public_api);
else
- f->threads[i] = g_thread_create (ref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (cycle_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &public_api);
else
- f->threads[i] = g_thread_create (cycle_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (unref_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &public_api);
else
- f->threads[i] = g_thread_create (unref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
- f->threads[i] = g_thread_create (ref_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &public_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
- f->threads[i] = g_thread_create (cycle_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &public_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
- f->threads[i] = g_thread_create (unref_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &public_api);
g_assert (f->threads[i] != NULL);
}
for (i = 0; i < N_THREADS; i++)
{
if ((i % 2) == 0)
- f->threads[i] = g_thread_create (ref_thread, &public_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &public_api);
else
- f->threads[i] = g_thread_create (ref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, ref_thread, &internal_api);
g_assert (f->threads[i] != NULL);
}
switch (i % 3)
{
case 0:
- f->threads[i] = g_thread_create (cycle_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &public_api);
break;
case 1:
- f->threads[i] = g_thread_create (cycle_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread, &internal_api);
break;
default:
- f->threads[i] = g_thread_create (cycle_thread,
- &unref_and_unlock_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, cycle_thread,
+ &unref_and_unlock_api);
}
g_assert (f->threads[i] != NULL);
switch (i % 3)
{
case 0:
- f->threads[i] = g_thread_create (unref_thread, &public_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &public_api);
break;
case 1:
- f->threads[i] = g_thread_create (unref_thread, &internal_api, TRUE,
- NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread, &internal_api);
break;
default:
- f->threads[i] = g_thread_create (unref_thread,
- &unref_and_unlock_api, TRUE, NULL);
+ f->threads[i] = g_thread_new (NULL, unref_thread,
+ &unref_and_unlock_api);
}
g_assert (f->threads[i] != NULL);
main (int argc,
char **argv)
{
- g_thread_init (NULL);
+ /* In GLib >= 2.24, < 2.31 this acts like g_thread_init() but avoids
+ * the deprecation of that function. In GLib >= 2.32 this is not
+ * necessary at all.
+ */
+ g_type_init ();
+
g_test_init (&argc, &argv, NULL);
g_test_bug_base ("https://bugs.freedesktop.org/show_bug.cgi?id=");