diff options
author | Bernard Normier <bernard@zeroc.com> | 2008-12-31 14:34:37 -0500 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2008-12-31 14:34:37 -0500 |
commit | a0dfb6ad783f35c1b0cad78b9cdae077b57d6de3 (patch) | |
tree | 31fd8eb1d67cce0091b3f1757da55b2114af9363 /cpp/src/Freeze/TransactionalEvictorI.cpp | |
parent | Merge branch 'R3_3_branch' of ssh://git/home/git/ice into R3_3_branch (diff) | |
download | ice-a0dfb6ad783f35c1b0cad78b9cdae077b57d6de3.tar.bz2 ice-a0dfb6ad783f35c1b0cad78b9cdae077b57d6de3.tar.xz ice-a0dfb6ad783f35c1b0cad78b9cdae077b57d6de3.zip |
Fixed bug #3232 (Freeze transactional evictor leaks)
Diffstat (limited to 'cpp/src/Freeze/TransactionalEvictorI.cpp')
-rw-r--r-- | cpp/src/Freeze/TransactionalEvictorI.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp index e2798be89da..ab3d61444f8 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorI.cpp @@ -625,7 +625,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& request) } // - // Can be reached + // Can't be reached // assert(0); throw OperationNotExistException(__FILE__, __LINE__); @@ -637,6 +637,17 @@ Freeze::TransactionalEvictorI::deactivate(const string&) { if(_deactivateController.deactivate()) { + { + Lock sync(*this); + + // + // Set the evictor size to zero, meaning that we will evict + // everything possible. + // + _evictorSize = 0; + evict(); + } + // // Break cycle // |