Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/intern/COM_compositor.cpp')
-rw-r--r--source/blender/compositor/intern/COM_compositor.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/compositor/intern/COM_compositor.cpp b/source/blender/compositor/intern/COM_compositor.cpp
index bec9ff95eed..7282cf65bc3 100644
--- a/source/blender/compositor/intern/COM_compositor.cpp
+++ b/source/blender/compositor/intern/COM_compositor.cpp
@@ -33,20 +33,22 @@ extern "C" {
#include "COM_WorkScheduler.h"
#include "OCL_opencl.h"
-static ThreadMutex *compositorMutex;
+static ThreadMutex compositorMutex;
+static char is_compositorMutex_init = FALSE;
void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering)
{
- if (compositorMutex == NULL) { /// TODO: move to blender startup phase
- compositorMutex = new ThreadMutex();
- BLI_mutex_init(compositorMutex);
+ if (is_compositorMutex_init == FALSE) { /// TODO: move to blender startup phase
+ memset(&compositorMutex, 0, sizeof(compositorMutex));
+ BLI_mutex_init(&compositorMutex);
OCL_init();
WorkScheduler::initialize(); ///TODO: call workscheduler.deinitialize somewhere
+ is_compositorMutex_init = TRUE;
}
- BLI_mutex_lock(compositorMutex);
+ BLI_mutex_lock(&compositorMutex);
if (editingtree->test_break(editingtree->tbh)) {
// during editing multiple calls to this method can be triggered.
// make sure one the last one will be doing the work.
- BLI_mutex_unlock(compositorMutex);
+ BLI_mutex_unlock(&compositorMutex);
return;
}
@@ -60,5 +62,5 @@ void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering)
system->execute();
delete system;
- BLI_mutex_unlock(compositorMutex);
+ BLI_mutex_unlock(&compositorMutex);
}