# HG changeset patch # User Markus Mützel # Date 1577030779 -3600 # Node ID 813f76932ab68e9e6ffdb06a46c517b37ace121e # Parent 3fada47cc58a85e8accde3a1f8e9bbf60d618dd3 * __init_gnuplot__.cc: Eliminate static variable "toolkit_loaded". diff -r 3fada47cc58a -r 813f76932ab6 libinterp/dldfcn/__init_gnuplot__.cc --- a/libinterp/dldfcn/__init_gnuplot__.cc Sat Dec 21 20:23:51 2019 +0100 +++ b/libinterp/dldfcn/__init_gnuplot__.cc Sun Dec 22 17:06:19 2019 +0100 @@ -52,8 +52,6 @@ // PKG_ADD: if (__have_gnuplot__ ()) register_graphics_toolkit ("gnuplot"); endif -static bool toolkit_loaded = false; - class gnuplot_graphics_toolkit : public octave::base_graphics_toolkit { public: @@ -147,12 +145,8 @@ void close (void) { - if (toolkit_loaded) - { - m_interpreter.munlock ("__init_gnuplot__"); - - toolkit_loaded = false; - } + if (m_interpreter.mislocked ("__init_gnuplot__")) + m_interpreter.munlock ("__init_gnuplot__"); } private: @@ -231,16 +225,14 @@ { if (! have_gnuplot_binary ()) error ("__init_gnuplot__: the gnuplot program is not available, see 'gnuplot_binary'"); - else if (! toolkit_loaded) + else if (! interp.mislocked ("__init_gnuplot__")) { - interp.mlock (); - octave::gtk_manager& gtk_mgr = interp.get_gtk_manager (); octave::graphics_toolkit tk (new gnuplot_graphics_toolkit (interp)); gtk_mgr.load_toolkit (tk); - toolkit_loaded = true; + interp.mlock (); } return octave_value_list ();