[Bf-blender-cvs] [3d56c89] openvdb: Clear map when releasing memory, add some debug prints.

Kévin Dietrich noreply at git.blender.org
Sun Nov 13 21:44:22 CET 2016


Commit: 3d56c890e8aaac1af4709c99e8bfc3af4dc050e4
Author: Kévin Dietrich
Date:   Wed May 11 13:52:36 2016 +0200
Branches: openvdb
https://developer.blender.org/rB3d56c890e8aaac1af4709c99e8bfc3af4dc050e4

Clear map when releasing memory, add some debug prints.

===================================================================

M	intern/cycles/util/util_volume.cpp

===================================================================

diff --git a/intern/cycles/util/util_volume.cpp b/intern/cycles/util/util_volume.cpp
index f48b983..9f0d4f3 100644
--- a/intern/cycles/util/util_volume.cpp
+++ b/intern/cycles/util/util_volume.cpp
@@ -16,6 +16,8 @@
 
 #include "util_volume.h"
 
+#include <cstdio>
+
 #if defined(HAS_CPP11_FEATURES) && defined(_MSC_VER)
 
 namespace std {
@@ -39,6 +41,8 @@ void release_map_memory(unordered_map<pthread_t, T> &map)
 	for(iter = map.begin(); iter != map.end(); ++iter) {
 		delete iter->second;
 	}
+
+	map.clear();
 }
 
 template <typename IsectorType>
@@ -46,6 +50,8 @@ void create_isectors_threads(unordered_map<pthread_t, IsectorType *> &isect_map,
                              const vector<pthread_t> &thread_ids,
                              const IsectorType &main_isect)
 {
+	std::fprintf(stderr, "%s", __func__);
+
 	release_map_memory(isect_map);
 
 	pthread_t my_thread = pthread_self();
@@ -59,6 +65,8 @@ void create_isectors_threads(unordered_map<pthread_t, IsectorType *> &isect_map,
 	if (isect_map.find(my_thread) == isect_map.end()) {
 		isect_map[my_thread] = new IsectorType(main_isect);
 	}
+
+	std::fprintf(stderr, ": %ld isectors, %ld threads\n", isect_map.size(), thread_ids.size());
 }
 
 template <typename SamplerType, typename AccessorType>
@@ -68,6 +76,7 @@ void create_samplers_threads(unordered_map<pthread_t, SamplerType *> &sampler_ma
                              const openvdb::math::Transform *transform,
                              const AccessorType &main_accessor)
 {
+	std::fprintf(stderr, "%s", __func__);
 	release_map_memory(sampler_map);
 
 	pthread_t my_thread = pthread_self();
@@ -86,6 +95,8 @@ void create_samplers_threads(unordered_map<pthread_t, SamplerType *> &sampler_ma
 		accessors.push_back(accessor);
 		sampler_map[my_thread] = new SamplerType(*accessor, *transform);
 	}
+
+	std::fprintf(stderr, ": %ld samplers, %ld threads\n", sampler_map.size(), thread_ids.size());
 }
 
 /* ********** OpenVDB floating pointing scalar volume ************ */




More information about the Bf-blender-cvs mailing list