This repository has been archived on 2023-10-09 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
c847198a7b136f48951ae0e788be347d7eb048cf
Instead of allocating scheduler and starting threads on every object_update call make it so scheduler is global and threads are always ready to run. This was we could avoid quite hacky thing which is counting how much objects need to be updated before starting threaded update. It'll also allow using the same scheduler to do all sorts of tasks, not only objects update in the same scheduler. This is nice from load balancing point of view. Couple of changes were needed to be done in task scheduler itself: - Free tas before sending notifier. - Free TaskThread structures outside from thread. This is needed to make it possible use begin/end threaded malloc from the main thread before/after running the pool. Without this change it was possible that allocation will switch to non-thread mode while thread is freeing the task. This required storing TaskThread array in Scheduler, but it's not so much bad actually, since it also reduces memory overhead caused by per-thread allocation.
Description
Archive of Blender with old branches
Languages
C
67.4%
C++
23.4%
Python
6.1%
CMake
1.5%
GLSL
1.1%
Other
0.4%