diff liboctave/util/oct-shlib.h @ 30749:076e19eac74a stable

allow deletion of dynamic_library objects to be delayed * oct-shlib.h, oct-shlib.cc (dynamic_library::delete_later): New function. (possibly_unreferenced_dynamic_libraries): New static object. (release_unreferenced_dynamic_libraries): New function. * interpreter.cc (interpreter::main_loop): Add release_unreferenced_dynamic_libraries as new event_hook. * pt-eval.cc (debugger::server_loop, tree_evaluator::server_loop): Also call release_unreferenced_dynamic_libraries in event loop.
author John W. Eaton <jwe@octave.org>
date Thu, 17 Feb 2022 22:21:03 -0500
parents 796f54d4ddbf
children b124e123a759
line wrap: on
line diff
--- a/liboctave/util/oct-shlib.h	Thu Feb 17 22:19:11 2022 -0500
+++ b/liboctave/util/oct-shlib.h	Thu Feb 17 22:21:03 2022 -0500
@@ -133,6 +133,8 @@
         delete m_rep;
     }
 
+    void delete_later (void);
+
     dynamic_library (const dynamic_library& sl)
       : m_rep (sl.m_rep)
     {
@@ -204,6 +206,11 @@
 
     dynlib_rep *m_rep;
   };
+
+  // FIXME: Currently must return int so that it may be used as an
+  // event_hook function.
+
+  OCTAVE_API int release_unreferenced_dynamic_libraries (void);
 }
 
 #endif