tornavis/intern/guardedalloc
Brecht Van Lommel b466286c3e Render & Compositing Thread Fixes
* Rendering twice or more could crash layer/pass buttons.
* Compositing would crash while drawing the image.
* Rendering animations could also crash drawing the image.
* Compositing could crash 
* Starting to rendering while preview render / compo was
  still running could crash.
* Exiting while rendering an animation would not abort the
  renderer properly, making Blender seemingly freeze.
* Fixes theoretically possible issue with setting malloc
  lock with nested threads.
* Drawing previews inside nodes could crash when those nodes
  were being rendered at the same time.

There's more crashes, manipulating the scene data or undo can
still crash, this commit only focuses on making sure the image
buffer and render result access is thread safe.


Implementation:
* Rather than assuming the render result does not get freed
  during render, which seems to be quite difficult to do given
  that e.g. the compositor is allowed to change the size of
  the buffer or output different passes, the render result is
  now protected with a read/write mutex.
* The read/write mutex allows multiple readers (and pixel
  writers) at the same time, but only allows one writer to
  manipulate the data structure.
* Added BKE_image_acquire_ibuf/BKE_image_release_ibuf to access
  images being rendered, cases where this is not needed (most
  code) can still use BKE_image_get_ibuf.
* The job manager now allows only one rendering job at the same
  time, rather than the G.rendering check which was not reliable.
2009-09-30 18:18:32 +00:00
..
cpp SVN maintenance. 2009-08-18 20:24:40 +00:00
intern Render & Compositing Thread Fixes 2009-09-30 18:18:32 +00:00
make Merge of itasc branch. Project files, scons and cmake should be working. Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library. 2009-09-24 21:22:24 +00:00
test Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
BLO_sys_types.h some fixes for netbsd with cmake 2009-08-14 13:13:36 +00:00
CMakeLists.txt white space commit. (2 spaces -> tab). 2009-09-06 01:51:23 +00:00
MEM_guardedalloc.h SVN maintenance. 2009-09-22 19:09:04 +00:00
Makefile Makefile updates for Blender 2.5 (from GSR) 2009-03-19 01:50:45 +00:00
SConscript == SCons == 2009-09-05 01:58:02 +00:00
mmap_win.h 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD 2009-04-20 15:06:46 +00:00