OR-Tools  9.6
glpk_env_deleter.cc
Go to the documentation of this file.
1 // Copyright 2010-2022 Google LLC
2 // Licensed under the Apache License, Version 2.0 (the "License");
3 // you may not use this file except in compliance with the License.
4 // You may obtain a copy of the License at
5 //
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13 
15 
16 #include "ortools/base/logging.h"
17 
18 extern "C" {
19 #include <glpk.h>
20 }
21 
22 namespace operations_research {
23 namespace {
24 
25 // Calls glp_free_env() in its destructor.
26 struct GlpkEnvDeleter {
27  ~GlpkEnvDeleter() {
28  VLOG(1) << "calling glp_free_env() for this thread";
29  glp_free_env();
30  }
31 };
32 
33 } // namespace
34 
36  // The GlpkEnvDeleter will be created at most once per thread where the
37  // function is called and its destructor will be called at the exit of this
38  // thread.
39  thread_local GlpkEnvDeleter env_deleter;
40 }
41 
42 } // namespace operations_research
Collection of objects used to extend the Constraint Solver library.
void SetupGlpkEnvAutomaticDeletion()
#define VLOG(verboselevel)
Definition: vlog.h:39