Revision: 16870
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16870
Author:   theeth
Date:     2008-10-01 20:00:13 +0200 (Wed, 01 Oct 2008)

Log Message:
-----------
Bug fixing

It helps if the fonction to wait on all threads actual does that.

Use user parameter for number of threads (this is really looking like it should 
be in the userprefs and not render params).

Modified Paths:
--------------
    branches/harmonic-skeleton/source/blender/blenlib/intern/threads.c
    branches/harmonic-skeleton/source/blender/src/autoarmature.c

Modified: branches/harmonic-skeleton/source/blender/blenlib/intern/threads.c
===================================================================
--- branches/harmonic-skeleton/source/blender/blenlib/intern/threads.c  
2008-10-01 17:08:51 UTC (rev 16869)
+++ branches/harmonic-skeleton/source/blender/blenlib/intern/threads.c  
2008-10-01 18:00:13 UTC (rev 16870)
@@ -225,7 +225,6 @@
                        tslot->callerdata = NULL;
                        pthread_join(tslot->pthread, NULL);
                        tslot->avail = 1;
-                       break;
                }
        }
 }

Modified: branches/harmonic-skeleton/source/blender/src/autoarmature.c
===================================================================
--- branches/harmonic-skeleton/source/blender/src/autoarmature.c        
2008-10-01 17:08:51 UTC (rev 16869)
+++ branches/harmonic-skeleton/source/blender/src/autoarmature.c        
2008-10-01 18:00:13 UTC (rev 16870)
@@ -78,7 +78,6 @@
 struct RigArc;
 struct RigEdge;
 
-#define NB_THREADS 4
 #define USE_THREADS
 
 typedef struct RigGraph {
@@ -328,6 +327,8 @@
 static RigGraph *newRigGraph()
 {
        RigGraph *rg;
+       int totthread;
+       
        rg = MEM_callocN(sizeof(RigGraph), "rig graph");
        
        rg->head = NULL;
@@ -339,7 +340,16 @@
        rg->free_node = NULL;
        
 #ifdef USE_THREADS
-       rg->worker = BLI_create_worker(exec_retargetArctoArc, NB_THREADS, 20); 
/* fix number of threads */
+       if(G.scene->r.mode & R_FIXED_THREADS)
+       {
+               totthread = G.scene->r.threads;
+       }
+       else
+       {
+               totthread = BLI_system_thread_count();
+       }
+       
+       rg->worker = BLI_create_worker(exec_retargetArctoArc, totthread, 20); 
/* fix number of threads */
 #endif
        
        return rg;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to