Here is part of the function...

valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (my_model),
&iter);

while (valid) {

gtk_tree_model_get (GTK_TREE_MODEL (my_model), &iter,
  MYMODEL_COL_STATUS, &status,
-1);

/* do some long calculations.... */

gdk_threads_enter(); /* get GTK thread lock */

gtk_list_store_set (GTK_LIST_STORE (my_model), &iter,
MYMODEL_COL_STATUS,STATUS_NORMAL,
-1);

gdk_threads_leave(); /* release GTK thread lock */

valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (my_model), &iter);

} 


This is the only place where I update the model...
Is it valid to assume that iter is the same, that it hasn't changed?

Regards,
Lorena

On Tue, 2005-06-14 at 16:01, Peter Bloomfield wrote:
> On 06/14/2005 02:20:16 PM Tue, Lorena Salinas wrote:
> > Hi,
> > 
> > This is what I do inside the worker_thread function
> > (create_and_start_worker_thread ()) every time I want to update
> > the
> > model:
> > 
> > 
> > gdk_threads_enter();                /* get GTK thread lock */
> > 
> > gtk_list_store_set (GTK_LIST_STORE (host_model), &iter,
> >                     MYMODEL_COL_STATUS, STATUS_NORMAL,
> >             -1);
> > 
> > gdk_threads_leave();                /* release GTK thread lock
> > */
> 
> This may not be the cause of your current problem, but in this  
> code you can't be sure that the GtkTreeIter is valid, because the  
> lock has been dropped and reacquired.  Validating and using an  
> iter while holding the lock is safer.
> 

_______________________________________________
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