Revision: 29622
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29622
Author:   blendix
Date:     2010-06-22 17:17:12 +0200 (Tue, 22 Jun 2010)

Log Message:
-----------
BLI_init_threads/BLI_end_threads with NULL listbase now raises thread level
and enables mutex protection on MEM_* functions, useful when you want to call
these functions from an OpenMP thread.

(merge from render25 branch)

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/threads.c

Modified: trunk/blender/source/blender/blenlib/intern/threads.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/threads.c       2010-06-22 
15:12:00 UTC (rev 29621)
+++ trunk/blender/source/blender/blenlib/intern/threads.c       2010-06-22 
15:17:12 UTC (rev 29622)
@@ -158,20 +158,20 @@
                        tslot->do_thread= do_thread;
                        tslot->avail= 1;
                }
-               
-               if(thread_levels == 0) {
-                       MEM_set_lock_callback(BLI_lock_malloc_thread, 
BLI_unlock_malloc_thread);
+       }
+       
+       if(thread_levels == 0) {
+               MEM_set_lock_callback(BLI_lock_malloc_thread, 
BLI_unlock_malloc_thread);
 
 #if defined(__APPLE__) && (PARALLEL == 1) && (__GNUC__ == 4) && 
(__GNUC_MINOR__ == 2)
-                       /* workaround for Apple gcc 4.2.1 omp vs background 
thread bug,
-                          we copy gomp thread local storage pointer to setting 
it again
-                          inside the thread that we start */
-                       thread_tls_data = pthread_getspecific(gomp_tls_key);
+               /* workaround for Apple gcc 4.2.1 omp vs background thread bug,
+                  we copy gomp thread local storage pointer to setting it again
+                  inside the thread that we start */
+               thread_tls_data = pthread_getspecific(gomp_tls_key);
 #endif
-               }
+       }
 
-               thread_levels++;
-       }
+       thread_levels++;
 }
 
 /* amount of available threads */
@@ -287,11 +287,11 @@
                        }
                }
                BLI_freelistN(threadbase);
+       }
 
-               thread_levels--;
-               if(thread_levels==0)
-                       MEM_set_lock_callback(NULL, NULL);
-       }
+       thread_levels--;
+       if(thread_levels==0)
+               MEM_set_lock_callback(NULL, NULL);
 }
 
 /* System Information */


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to