diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-07-27 01:47:43 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-07-27 01:47:43 +0000 |
commit | 6d1e32eebbbe320b3a1fe33552824a3f8982b6a0 (patch) | |
tree | ec67ad494b59bd2e8028f5b7e5b886394cb4e3b9 /cpp/src/Freeze/EvictorI.cpp | |
parent | Minor fix (diff) | |
download | ice-6d1e32eebbbe320b3a1fe33552824a3f8982b6a0.tar.bz2 ice-6d1e32eebbbe320b3a1fe33552824a3f8982b6a0.tar.xz ice-6d1e32eebbbe320b3a1fe33552824a3f8982b6a0.zip |
Partial fix for bug #1257: deprecating nonmutating
Diffstat (limited to 'cpp/src/Freeze/EvictorI.cpp')
-rw-r--r-- | cpp/src/Freeze/EvictorI.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp index 4e148fedbc1..99a5553f2c3 100644 --- a/cpp/src/Freeze/EvictorI.cpp +++ b/cpp/src/Freeze/EvictorI.cpp @@ -294,7 +294,8 @@ Freeze::EvictorI::EvictorI(const ObjectAdapterPtr& adapter, _trace = _communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Evictor"); _txTrace = _communicator->getProperties()->getPropertyAsInt("Freeze.Trace.Transaction"); _deadlockWarning = (_communicator->getProperties()->getPropertyAsInt("Freeze.Warn.Deadlocks") != 0); - + _useNonmutating = (_communicator->getProperties()->getPropertyAsInt("Freeze.Evictor.UseNonmutating") != 0); + string propertyPrefix = string("Freeze.Evictor.") + envName + '.' + _filename; // @@ -1135,8 +1136,6 @@ Freeze::EvictorI::locate(const Current& current, LocalObjectPtr& cookie) // if(current.operation == "ice_ping") { - assert(current.mode == Nonmutating); - if(hasFacetImpl(current.id, current.facet)) { if(_trace >= 3) @@ -1272,7 +1271,8 @@ Freeze::EvictorI::finished(const Current& current, const ObjectPtr& servant, con bool enqueue = false; - if(current.mode != Nonmutating) + if((_useNonmutating && current.mode != Nonmutating) || + (servant->ice_operationAttributes(current.operation) & 0x1) != 0) { IceUtil::Mutex::Lock lock(element->mutex); |