Blender Git Commit Log
Git Commits -> Revision 5be97ab
Revision 5be97ab by Sergey Sharybin (master) August 14, 2013, 09:24 (GMT) |
Recent spinlock commit made scheduling unsafe for threading Namely, it caused nodes be adding to the pool multiple times. Returned spin back, but use it only in cases node valency is zero. So now valency is decreasing without any locks, then if it's zero spin lock happens, node color (which indicates whether node is scheduled or not) happens. Actual new task creation happens outside of locks. This might sound a bit complicated, but it's straightforward code which is free from any thread synchronization latency. |
Commit Details:
Full Hash: 5be97aba95d34e49d78897b3b77e3596d3cbb298
SVN Revision: 59134
Parent Commit: 932df91
Lines Changed: +48, -5
6 Modified Paths:
/source/blender/blenkernel/BKE_depsgraph.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/blender.c (+1, -0) (Diff)
/source/blender/blenkernel/intern/depsgraph.c (+38, -5) (Diff)
/source/blender/windowmanager/intern/wm_playanim.c (+2, -0) (Diff)
/source/creator/creator.c (+1, -0) (Diff)
/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp (+2, -0) (Diff)
/source/blender/blenkernel/intern/blender.c (+1, -0) (Diff)
/source/blender/blenkernel/intern/depsgraph.c (+38, -5) (Diff)
/source/blender/windowmanager/intern/wm_playanim.c (+2, -0) (Diff)
/source/creator/creator.c (+1, -0) (Diff)
/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp (+2, -0) (Diff)