Skip to content

Commit 5b1c50b

Browse files
authored
Fix dispose() (#101)
* Fix dispose() * Limit to gurobi solver
1 parent acb57fc commit 5b1c50b

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/pyoframe/model.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,18 +329,19 @@ def compute_IIS(self):
329329
"""
330330
self.poi.computeIIS()
331331

332+
@for_solvers("gurobi")
332333
def dispose(self):
333334
"""
334335
Tries to close the solver connection by deleting the model and forcing the garbage collector to run.
335336
336-
Once this method is called, this model is no longer usable.
337+
Gurobi only. Once this method is called, this model is no longer usable.
337338
338339
This method will not work if you have a variable that references self.poi.
339340
Unfortunately, this is a limitation from the underlying solver interface library.
340341
See https://github.com/metab0t/PyOptInterface/issues/36 for context.
341342
342343
Examples:
343-
>>> m = pf.Model()
344+
>>> m = pf.Model(solver="gurobi")
344345
>>> m.X = pf.Variable(ub=1)
345346
>>> m.maximize = m.X
346347
>>> m.optimize()
@@ -354,8 +355,11 @@ def dispose(self):
354355
"""
355356
import gc
356357

358+
env = self.poi._env
357359
del self.poi
358360
gc.collect()
361+
del env
362+
gc.collect()
359363

360364
def _set_param(self, name, value):
361365
self.poi.set_raw_parameter(name, value)

0 commit comments

Comments
 (0)