0
0
Fork 0
The official Blender project repository.
Go to file
Bastien Montagne 9859622a66 BKE_reports: make the API thread-safe.
This commit makes using (most of) `BKE_report` API safe in
multi-threaded situation.

This is achieved by adding a `std::mutex` lock to the `ReportList`
struct (in a slightly convoluted way unfortunately, due to this being a
DNA struct). This lock is then used to make most operations on
`Reportlist` data thread-safe.

Note that while working on this, a few other minor issues aroze in
existing usages of Reportlist by the WM code, mainly the fact that
`wm_init_reports` and `wm_free_reports` were both useless:
  - init was called in a context where there is not yet any WM, so it
    was doing nothing.
  - free was called on a WM that would be later freed (as part of Main
    freeing), which would also call cleanup code for its `reports` data.
Both have been removed.

Further more, `wm_add_default` (which is the only place where a WM ID is
created) did not initialize properly it reports data, this has been
fixed.

This change is related to the wmJob thread-safety tasks and PRs (#112537,
!113548).

Pull Request: blender/blender#113561
2023-10-13 11:29:59 +02:00
.gitea Gitea: add note that developers must opt-out of inclusion in AUTHORS 2023-08-18 09:23:43 +10:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files Cycles: oneAPI: update windows ocloc to 101.4723 2023-10-11 14:47:48 +02:00
doc Release cycle: Bcon1 for Blender 4.1 2023-09-27 12:49:46 +02:00
extern CMake: quiet undefined variable use with MOLTENVK on non-apple systems 2023-10-07 18:25:44 +11:00
intern Vulkan: Add Viewport Array/Layer Workarounds 2023-10-13 10:40:11 +02:00
locale I18N: Updated UI translations from weblate/git repo (927ffa172fe7cc58). 2023-10-09 12:02:47 +02:00
release Revert "Splash screen for Blender 4.0" 2023-10-12 16:21:32 +02:00
scripts Merge branch 'blender-v4.0-release' 2023-10-13 17:32:48 +11:00
source BKE_reports: make the API thread-safe. 2023-10-13 11:29:59 +02:00
tests EEVEE-Next: Rename light probes 2023-10-11 19:38:42 +02:00
tools Merge branch 'blender-v4.0-release' 2023-10-06 21:48:37 +11:00
.clang-format clang-format: set BraceWrapping::AfterControlStatement to "MultiLine" 2023-05-02 09:37:08 +10:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig pyproject: add configuration for autopep8 2022-04-22 10:13:39 +10:00
.git-blame-ignore-revs Cleanup: add commit to .git-blame-ignore-revs 2023-05-03 20:31:11 +10:00
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
AUTHORS AUTHORS: update 2023-10-06 21:47:31 +11:00
CMakeLists.txt Cycles: oneAPI: generate binaries for Meteor Lake iGPUs 2023-10-11 18:29:21 +02:00
COPYING == docs == 2010-10-13 14:44:22 +00:00
GNUmakefile Makefile: remove redundant directory changing 2023-09-29 16:44:31 +10:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00
make.bat Windows: Propagate errors in make.bat 2023-08-16 19:29:47 +02:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00

README.md

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.