[opencv] 168/251: dnn: protobuf shutdown

Nobuhiro Iwamatsu iwamatsu at moszumanska.debian.org
Sun Aug 27 23:27:39 UTC 2017


This is an automated email from the git hooks/post-receive script.

iwamatsu pushed a commit to annotated tag 3.3.0
in repository opencv.

commit 3f102e5d3a0b36a46a43024d6787c25f730f414d
Author: Alexander Alekhin <alexander.alekhin at intel.com>
Date:   Tue Jul 25 16:13:56 2017 +0300

    dnn: protobuf shutdown
---
 modules/dnn/src/init.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/modules/dnn/src/init.cpp b/modules/dnn/src/init.cpp
index 9222d5e..97ea169 100644
--- a/modules/dnn/src/init.cpp
+++ b/modules/dnn/src/init.cpp
@@ -42,6 +42,8 @@
 #include "precomp.hpp"
 #include <opencv2/dnn/layer.details.hpp>
 
+#include <google/protobuf/stubs/common.h>
+
 namespace cv {
 namespace dnn {
 CV__DNN_EXPERIMENTAL_NS_BEGIN
@@ -56,11 +58,26 @@ Mutex& getInitializationMutex()
 // force initialization (single-threaded environment)
 Mutex* __initialization_mutex_initializer = &getInitializationMutex();
 
+namespace {
+using namespace google::protobuf;
+class ProtobufShutdown {
+public:
+    bool initialized;
+    ProtobufShutdown() : initialized(true) {}
+    ~ProtobufShutdown()
+    {
+        initialized = false;
+        google::protobuf::ShutdownProtobufLibrary();
+    }
+};
+} // namespace
 
 void initializeLayerFactory()
 {
     CV_TRACE_FUNCTION();
 
+    static ProtobufShutdown protobufShutdown; (void)protobufShutdown;
+
     CV_DNN_REGISTER_LAYER_CLASS(Slice,          SliceLayer);
     CV_DNN_REGISTER_LAYER_CLASS(Split,          SplitLayer);
     CV_DNN_REGISTER_LAYER_CLASS(Concat,         ConcatLayer);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opencv.git



More information about the debian-science-commits mailing list