On Fri, 2005-01-28 at 00:18, Felix Kater wrote:
> Hi,
> 
> is a function thread save when all inside code is wrapped into a static
> mutex?

By definition, no.

You should use mutual exclusion to access/change the variables used by
various threads.

> What is with this function: Could a second thread influence the first
> thread while it is looping (because of the pointer argument)?

The second thread will be unable to lock the mutex, meanwhile the first
one does not unlock it.

> void f(gint* my_gint){
> 
>   static GStaticMutex my_mutex = G_STATIC_MUTEX_INIT;
> 
>   g_static_mutex_lock(&my_mutex);
> 
>   while(TRUE)
>   {
>     
>     g_printf("value: %d\n", *my_gint);
> 
>     /* ... */
> 
>   }
> 
>   g_static_mutex_unlock(&my_mutex);
> }

This code will lock the mutex while you're in the "while(TRUE)" loop.

No other thread will be able to get the lock, so all other threads will
block idefinitely.


Regards.
-- 
Iago Rubio
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to