GNOME Bugzilla – Bug 647529
Calling Clock.Wait fails with EntryNotFoundException
Last modified: 2011-04-13 15:34:59 UTC
Unable to find an entry point named 'g_cond_timed_wait' in DLL 'libglib-2.0-0.dll'. I'm using ossbuild version 0.10.7 LGPL Beta 4 so I first posted this bug there and this is the response I got from david.g.hoyt It's not exported in the official GTK+ builds either (or at least I couldn't find them): http://www.gtk.org/download-windows.html I think that the C# bindings are wrong. From gthread.h, g_cond_timed_wait() is #define'd as: # define g_cond_timed_wait(cond, mutex, abs_time) \ G_THREAD_CF (cond_timed_wait, TRUE, (cond, mutex, abs_time)) or # define g_cond_timed_wait(cond, mutex, abs_time) \ (g_thread_supported () ? \ ((gboolean(*)(GCond*, GMutex*, GTimeVal*, gulong, gchar*)) \ g_thread_functions_for_glib_use.cond_timed_wait) \ (cond, mutex, abs_time, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : TRUE) Naturally that won't be exported. It appears that glib uses a virtual function table and populates it with a platform-specific or overridable (user-defined) function. There is a g_cond_timed_wait_win32_impl() but that's declared as static and therefore not exported either. The C# bindings need to be fixed to properly use the function table. You'll want to submit this bug upstream it seems -- it doesn't seem to be a problem with our build.
commit e67cf80368a41f8807fd054f671b393cae3bac69 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Wed Apr 13 17:33:05 2011 +0200 The GMutex and GCond API uses macros to function tables instead of real function We need to add real functions for these macros. Fixes bug #647529.