From 1ffffa933aa3f0a0451379a4ae1b68545b20e705 Mon Sep 17 00:00:00 2001 From: wolf Date: Wed, 25 Nov 1998 13:21:18 +0000 Subject: [PATCH] Fix a problem with locks/subscriptors which prevented the example from running. git-svn-id: https://svn.dealii.org/trunk@673 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/Attic/examples/convergence/convergence.cc | 5 +++++ deal.II/deal.II/Attic/examples/poisson/problem.cc | 9 +++++++++ tests/big-tests/convergence/convergence.cc | 5 +++++ tests/big-tests/poisson/problem.cc | 9 +++++++++ 4 files changed, 28 insertions(+) diff --git a/deal.II/deal.II/Attic/examples/convergence/convergence.cc b/deal.II/deal.II/Attic/examples/convergence/convergence.cc index b5c91be41b..e60e21f164 100644 --- a/deal.II/deal.II/Attic/examples/convergence/convergence.cc +++ b/deal.II/deal.II/Attic/examples/convergence/convergence.cc @@ -209,6 +209,11 @@ void PoissonProblem::clear () { dof = 0; }; + // make it known to the underlying + // ProblemBase that tria and dof + // are already deleted + set_tria_and_dof (tria, dof); + if (rhs != 0) { delete rhs; diff --git a/deal.II/deal.II/Attic/examples/poisson/problem.cc b/deal.II/deal.II/Attic/examples/poisson/problem.cc index e24b5d1aff..c683811385 100644 --- a/deal.II/deal.II/Attic/examples/poisson/problem.cc +++ b/deal.II/deal.II/Attic/examples/poisson/problem.cc @@ -174,6 +174,11 @@ void PoissonProblem::clear () { tria = 0; }; + // make it known to the underlying + // ProblemBase that tria and dof + // are already deleted + set_tria_and_dof (tria, dof); + if (rhs != 0) { @@ -479,6 +484,10 @@ void PoissonProblem::run (ParameterHandler &prm) { out.write_gnuplot (gnuplot); gnuplot.close (); + // release the lock of the DoF object to + // the FE object + dof->clear (); + cout << endl; }; diff --git a/tests/big-tests/convergence/convergence.cc b/tests/big-tests/convergence/convergence.cc index b5c91be41b..e60e21f164 100644 --- a/tests/big-tests/convergence/convergence.cc +++ b/tests/big-tests/convergence/convergence.cc @@ -209,6 +209,11 @@ void PoissonProblem::clear () { dof = 0; }; + // make it known to the underlying + // ProblemBase that tria and dof + // are already deleted + set_tria_and_dof (tria, dof); + if (rhs != 0) { delete rhs; diff --git a/tests/big-tests/poisson/problem.cc b/tests/big-tests/poisson/problem.cc index e24b5d1aff..c683811385 100644 --- a/tests/big-tests/poisson/problem.cc +++ b/tests/big-tests/poisson/problem.cc @@ -174,6 +174,11 @@ void PoissonProblem::clear () { tria = 0; }; + // make it known to the underlying + // ProblemBase that tria and dof + // are already deleted + set_tria_and_dof (tria, dof); + if (rhs != 0) { @@ -479,6 +484,10 @@ void PoissonProblem::run (ParameterHandler &prm) { out.write_gnuplot (gnuplot); gnuplot.close (); + // release the lock of the DoF object to + // the FE object + dof->clear (); + cout << endl; }; -- 2.39.5