Re: mutex doubt



On Wed, Dec 7, 2011 at 2:30 AM,  <jcupitt gmail com> wrote:
2011/12/6 Marcelo Elias Del Valle - SYSMAP SOLUTIONS - Claro MA-SP -
<Marcelo Valle claro com br>:
       Do I need to call g_thread_init() manually before calling g_mutex_new (), in a glib only 
application? Or is it auto called by default when I call g_type_init() and therefore I don't need to do it?

Older versions of glib had optional threading support, so you needed
to call g_thread_init() yourself.

Newer versions (in the last 12 months or so? can't remember, but about
that) have made thread support required and the threading system is
now inited for you as part of glib startup.

It's harmless to call g_thread_init() more than once.

Out of curiosity, what is "glib startup" ?

Do you mean as a part of g_type_init() ?

Or, can glib programs which don't make use of GObject use
threads at all ? Must _those_ programs still call g_thread_init()
before using threads ?

It seems that the pthread library itself requires at least that pthread_init()
be called once before using threads, is it called implicitly by every
function that might require threads ? (like g_mutex_init() ?)

Speaking of which, I just stumbled on some really odd documentation
for g_mutex_init(), it says there:

   "It is not necessary to initialize a mutex that has been created
that has been statically allocated."

Anyone care to mention what that means ? Mustn't a mutex at least be
zero initialized if
declared on the stack ? i.e. GMutex my_mutex = { 0, }; ?

Cheers,
         -Tristan


John
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]