diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
commit | 23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch) | |
tree | 60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /java/src/IceInternal/ThreadObserverI.java | |
parent | .NET demo project updates (diff) | |
download | ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.bz2 ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.xz ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.zip |
Added support for Glacier2 MX and fixed ICE-4880
Diffstat (limited to 'java/src/IceInternal/ThreadObserverI.java')
-rw-r--r-- | java/src/IceInternal/ThreadObserverI.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/java/src/IceInternal/ThreadObserverI.java b/java/src/IceInternal/ThreadObserverI.java new file mode 100644 index 00000000000..b0a8248bbdc --- /dev/null +++ b/java/src/IceInternal/ThreadObserverI.java @@ -0,0 +1,60 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package IceInternal; + +public class ThreadObserverI extends IceMX.Observer<IceMX.ThreadMetrics> implements Ice.Instrumentation.ThreadObserver +{ + public void + stateChanged(final Ice.Instrumentation.ThreadState oldState, final Ice.Instrumentation.ThreadState newState) + { + _oldState = oldState; + _newState = newState; + forEach(_threadStateUpdate); + } + + private MetricsUpdate<IceMX.ThreadMetrics> _threadStateUpdate = new MetricsUpdate<IceMX.ThreadMetrics>() + { + public void + update(IceMX.ThreadMetrics v) + { + switch(_oldState) + { + case ThreadStateInUseForIO: + --v.inUseForIO; + break; + case ThreadStateInUseForUser: + --v.inUseForUser; + break; + case ThreadStateInUseForOther: + --v.inUseForOther; + break; + default: + break; + } + switch(_newState) + { + case ThreadStateInUseForIO: + ++v.inUseForIO; + break; + case ThreadStateInUseForUser: + ++v.inUseForUser; + break; + case ThreadStateInUseForOther: + ++v.inUseForOther; + break; + default: + break; + } + } + }; + + private Ice.Instrumentation.ThreadState _oldState; + private Ice.Instrumentation.ThreadState _newState; +}
\ No newline at end of file |