[concurrency-interest] Deadlock

Peter Levart peter.levart at gmail.com
Tue Jun 24 10:21:46 EDT 2014


On 06/24/2014 04:12 PM, Peter Levart wrote:
> On 06/24/2014 01:09 PM, David Holmes wrote:
>> Hi Peter,
>>
>> What a strange coincidence - the fact that the initialization of
>> ThreadLocalRandom can lead to arbitrary code execution has just been 
>> a topic
>> of discussion, and it looks like your deadlock is related to that.
>
> Uf, this time it's a combination of a custom SecurityManager being in 
> effect when NetworkInterface.getHardwareAddress() is called. It looks 
> like we should not use any networking code at all for TLR's 
> initialization.

Or make NetworkInterface.getHardwareAddress() a @CallerSensitive method 
and avoid SecurityManager invocation when called from one of system 
classes. That's still an alternative.

Peter

>
> Regards, Peter
>
>>
>> David Holmes
>>
>>> -----Original Message-----
>>> From: concurrency-interest-bounces at cs.oswego.edu
>>> [mailto:concurrency-interest-bounces at cs.oswego.edu]On Behalf Of Peter
>>> Firmstone
>>> Sent: Tuesday, 24 June 2014 8:25 PM
>>> To: concurrency-interest at cs.oswego.edu
>>> Subject: [concurrency-interest] Deadlock
>>>
>>>
>>> This appears to be a ClassLoader deadlock in Java 7.
>>>
>>> The stack trace from the main thread is missing.
>>>
>>> Any ideas?
>>>
>>> Regards,
>>>
>>> Peter.
>>>
>>> Attaching to process ID 7124, please wait...
>>> Debugger attached successfully.
>>> Client compiler detected.
>>> JVM version is 25.0-b70
>>> Deadlock Detection:
>>>
>>> Found one Java-level deadlock:
>>> =============================
>>>
>>> "main":
>>>     waiting to lock Monitor at 0x0094bb2c (Object at 0x03d73c38, a
>>> java/lang/Object),
>>>     which is held by "Thread-1"
>>> "Thread-1":
>>>     waiting to lock Monitor at 0x0094c99c (Object at 0x03f02e50, a [I),
>>>     which is held by "main"
>>>
>>> Found a total of 1 deadlock.
>>>
>>> Thread 8: (state = BLOCKED)
>>>    - au.net.zeus.collection.ReferenceFactory.create(java.lang.Object,
>>> au.net.zeus.collection.RefQueue, au.net.zeus.collection.Ref) @bci=229,
>>> line=60 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=37, line=128 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=4, line=44 (Interpreted frame)
>>>    - au.net.zeus.collection.ReferenceMap.wrapKey(java.lang.Object,
>>> boolean, boolean) @bci=7, line=248 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceConcurrentMap.putIfAbsent(java.lan
>>> g.Object,
>>> java.lang.Object) @bci=8, line=67 (Interpreted frame)
>>>    -
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission,
>>> java.lang.Object) @bci=161, line=260 (Interpreted frame)
>>>    -
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTr
>>> ustPermission(java.lang.Class)
>>> @bci=59, line=1848 (Interpreted frame)
>>>    -
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBea
>>> n(java.lang.Object,
>>> javax.management.ObjectName) @bci=25, line=322 (Interpreted frame)
>>>    - com.sun.jmx.mbeanserver.JmxMBeanServer$2.run() @bci=17, line=1225
>>> (Interpreted frame)
>>>    -
>>> java.security.AccessController.doPrivileged(java.security.Privileg
>>> edExceptionAction)
>>> @bci=0 (Interpreted frame)
>>>    - com.sun.jmx.mbeanserver.JmxMBeanServer.initialize() @bci=25,
>>> line=1223 (Interpreted frame)
>>>    - com.sun.jmx.mbeanserver.JmxMBeanServer.<init>(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate,
>>> com.sun.jmx.mbeanserver.MBeanInstantiator, boolean, boolean) @bci=133,
>>> line=255 (Interpreted frame)
>>>    -
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServer(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate,
>>> boolean) @bci=13, line=1437 (Interpreted frame)
>>>    - 
>>> javax.management.MBeanServerBuilder.newMBeanServer(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate)
>>> @bci=4, line=110 (Interpreted frame)
>>>    - 
>>> javax.management.MBeanServerFactory.newMBeanServer(java.lang.String)
>>> @bci=36, line=329 (Interpreted frame)
>>>    -
>>> javax.management.MBeanServerFactory.createMBeanServer(java.lang.String)
>>> @bci=6, line=231 (Interpreted frame)
>>>    - javax.management.MBeanServerFactory.createMBeanServer() @bci=1,
>>> line=192 (Interpreted frame)
>>>    - java.lang.management.ManagementFactory.getPlatformMBeanServer()
>>> @bci=29, line=468 (Interpreted frame)
>>>    -
>>> sun.management.jmxremote.ConnectorBootstrap.startLocalConnectorServer()
>>> @bci=66, line=518 (Interpreted frame)
>>>    - sun.management.Agent.startLocalManagementAgent() @bci=13, line=138
>>> (Interpreted frame)
>>>    - sun.management.Agent.startAgent(java.util.Properties) @bci=76,
>>> line=260 (Interpreted frame)
>>>    - sun.management.Agent.agentmain(java.lang.String) @bci=45, line=128
>>> (Interpreted frame)
>>>    -
>>> sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
>>> java.lang.Object, java.lang.Object[]) @bci=0 (Interpreted frame)
>>>    - sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
>>> java.lang.Object[]) @bci=100, line=62 (Interpreted frame)
>>>    - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
>>> java.lang.Object[]) @bci=6, line=43 (Interpreted frame)
>>>    - java.lang.reflect.Method.invoke(java.lang.Object,
>>> java.lang.Object[]) @bci=56, line=483 (Interpreted frame)
>>>    -
>>> sun.instrument.InstrumentationImpl.loadClassAndStartAgent(java.lan
>>> g.String,
>>> java.lang.String, java.lang.String) @bci=192, line=388 (Interpreted 
>>> frame)
>>>    -
>>> sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(java.
>>> lang.String,
>>> java.lang.String) @bci=5, line=411 (Interpreted frame)
>>>
>>>
>>> Thread 7: (state = BLOCKED)
>>>
>>>
>>> Thread 5: (state = BLOCKED)
>>>    - au.net.zeus.collection.ReferenceFactory.create(java.lang.Object,
>>> au.net.zeus.collection.RefQueue, au.net.zeus.collection.Ref) @bci=229,
>>> line=60 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=37, line=128 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=4, line=44 (Interpreted frame)
>>>    - au.net.zeus.collection.ReferenceMap.wrapKey(java.lang.Object,
>>> boolean, boolean) @bci=7, line=248 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceConcurrentMap.putIfAbsent(java.lan
>>> g.Object,
>>> java.lang.Object) @bci=8, line=67 (Interpreted frame)
>>>    -
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission,
>>> java.lang.Object) @bci=161, line=260 (Interpreted frame)
>>>    -
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission)
>>> @bci=27, line=202 (Interpreted frame)
>>>    - java.net.NetworkInterface.getHardwareAddress() @bci=18, line=447
>>> (Interpreted frame)
>>>    - java.util.concurrent.ThreadLocalRandom.initialSeed() @bci=116,
>>> line=158 (Interpreted frame)
>>>    - java.util.concurrent.ThreadLocalRandom.<clinit>() @bci=14, 
>>> line=137
>>> (Interpreted frame)
>>>    - java.util.concurrent.ConcurrentHashMap.fullAddCount(long, boolean)
>>> @bci=0, line=2526 (Interpreted frame)
>>>    - java.util.concurrent.ConcurrentHashMap.addCount(long, int) 
>>> @bci=104,
>>> line=2266 (Interpreted frame)
>>>    - java.util.concurrent.ConcurrentHashMap.putVal(java.lang.Object,
>>> java.lang.Object, boolean) @bci=357, line=1070 (Interpreted frame)
>>>    - 
>>> java.util.concurrent.ConcurrentHashMap.putIfAbsent(java.lang.Object,
>>> java.lang.Object) @bci=4, line=1535 (Interpreted frame)
>>>    - java.lang.ClassLoader.getClassLoadingLock(java.lang.String) 
>>> @bci=23,
>>> line=463 (Interpreted frame)
>>>    - java.lang.ClassLoader.loadClass(java.lang.String, boolean) @bci=2,
>>> line=404 (Interpreted frame)
>>>    - java.lang.ClassLoader.loadClass(java.lang.String, boolean) 
>>> @bci=38,
>>> line=411 (Interpreted frame)
>>>    - sun.misc.Launcher$AppClassLoader.loadClass(java.lang.String,
>>> boolean) @bci=36, line=308 (Interpreted frame)
>>>    - java.lang.ClassLoader.loadClass(java.lang.String) @bci=3, line=357
>>> (Interpreted frame)
>>>    -
>>> org.cliffc.high_scale_lib.NonBlockingHashMap$SnapshotK.<init>(org.
>> cliffc.high_scale_lib.NonBlockingHashMap)
>>> @bci=10, line=1167 (Interpreted frame)
>>>    - org.cliffc.high_scale_lib.NonBlockingHashMap$2.iterator() @bci=8,
>>> line=1200 (Interpreted frame)
>>>    - au.net.zeus.collection.ReferenceProcessor$EnqueGarbageTask.run()
>>> @bci=15, line=166 (Interpreted frame)
>>>    - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4,
>>> line=511 (Interpreted frame)
>>>    - java.util.concurrent.FutureTask.runAndReset() @bci=47, line=308
>>> (Interpreted frame)
>>>    -
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTa
>>> sk.access$301(java.util.concurrent.ScheduledThreadPoolExecutor$Sch
>>> eduledFutureTask)
>>> @bci=1, line=180 (Interpreted frame)
>>>    -
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTa
>>> sk.run()
>>> @bci=37, line=294 (Interpreted frame)
>>>    -
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concur
>>> rent.ThreadPoolExecutor$Worker)
>>> @bci=95, line=1142 (Interpreted frame)
>>>    - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5,
>>> line=617 (Interpreted frame)
>>>    - java.lang.Thread.run() @bci=11, line=744 (Interpreted frame)
>>>
>>>
>>> Thread 4: (state = BLOCKED)
>>>    - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>>>    - java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=142
>>> (Interpreted frame)
>>>    - java.lang.ref.ReferenceQueue.remove() @bci=2, line=158 
>>> (Interpreted
>>> frame)
>>>    - java.lang.ref.Finalizer$FinalizerThread.run() @bci=36, line=209
>>> (Interpreted frame)
>>>
>>>
>>> Thread 3: (state = BLOCKED)
>>>    - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
>>>    - java.lang.Object.wait() @bci=2, line=502 (Interpreted frame)
>>>    - java.lang.ref.Reference$ReferenceHandler.run() @bci=36, line=157
>>> (Interpreted frame)
>>>
>>>
>>> Thread 1: (state = BLOCKED)
>>>    - java.lang.ClassLoader.loadClass(java.lang.String, boolean) @bci=8,
>>> line=406 (Interpreted frame)
>>>    - sun.misc.Launcher$AppClassLoader.loadClass(java.lang.String,
>>> boolean) @bci=36, line=308 (Interpreted frame)
>>>    - java.lang.ClassLoader.loadClass(java.lang.String) @bci=3, line=357
>>> (Interpreted frame)
>>>    - au.net.zeus.collection.ReferenceFactory.create(java.lang.Object,
>>> au.net.zeus.collection.RefQueue, au.net.zeus.collection.Ref) @bci=229,
>>> line=60 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=37, line=128 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) @bci=4, line=44 (Interpreted frame)
>>>    - au.net.zeus.collection.ReferenceMap.wrapKey(java.lang.Object,
>>> boolean, boolean) @bci=7, line=248 (Interpreted frame)
>>>    -
>>> au.net.zeus.collection.ReferenceConcurrentMap.putIfAbsent(java.lan
>>> g.Object,
>>> java.lang.Object) @bci=8, line=67 (Interpreted frame)
>>>    -
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission,
>>> java.lang.Object) @bci=161, line=260 (Interpreted frame)
>>>    -
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission)
>>> @bci=27, line=202 (Interpreted frame)
>>>    - java.lang.System.checkIO() @bci=18, line=253 (Interpreted frame)
>>>    - java.lang.System.setErr(java.io.PrintStream) @bci=0, line=199
>>> (Interpreted frame)
>>>    - com.sun.jini.qa.harness.MasterTest.main(java.lang.String[]) 
>>> @bci=9,
>>> line=84 (Interpreted frame)
>>>
>>> The long version:
>>>
>>> Attaching to process ID 7124, please wait...
>>> Debugger attached successfully.
>>> Client compiler detected.
>>> JVM version is 25.0-b70
>>> Deadlock Detection:
>>>
>>> Found one Java-level deadlock:
>>> =============================
>>>
>>> "main":
>>>     waiting to lock Monitor at 0x0094bb2c (Object at 0x03d73c38, a
>>> java/lang/Object),
>>>     which is held by "Thread-1"
>>> "Thread-1":
>>>     waiting to lock Monitor at 0x0094c99c (Object at 0x03f02e50, a [I),
>>>     which is held by "main"
>>>
>>> Found a total of 1 deadlock.
>>>
>>> ----------------- 0 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x00e64d7b    java + 0x4d7b
>>> 0x00e631ca    java + 0x31ca
>>> 0x00e642ab    java + 0x42ab
>>> 0x00e63440    java + 0x3440
>>> 0x00130138        ????????
>>> ----------------- 1 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6b3d    jvm!_JVM_FindSignal at 4 + 0x286d
>>> 0x5bf7857e    jvm!JVM_GetThreadStateNames + 0x4c12e
>>> 0x5bf78b23    jvm!JVM_GetThreadStateNames + 0x4c6d3
>>> 0x5bf8e107    jvm!JVM_GetThreadStateNames + 0x61cb7
>>> 0x5bf8e6be    jvm!JVM_GetThreadStateNames + 0x6226e
>>> 0x5bea1b28    jvm + 0x71b28
>>> 0x01aa1cef    * java.lang.ClassLoader.loadClass(java.lang.String,
>>> boolean) bci:8 line:406 (Interpreted frame)
>>> 0x01a94054    *
>>> sun.misc.Launcher$AppClassLoader.loadClass(java.lang.String, boolean)
>>> bci:36 line:308 (Interpreted frame)
>>> 0x01a94054    * java.lang.ClassLoader.loadClass(java.lang.String) bci:3
>>> line:357 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf724a6    jvm!JVM_GetThreadStateNames + 0x46056
>>> 0x5bf7258f    jvm!JVM_GetThreadStateNames + 0x4613f
>>> 0x5be77d6f    jvm + 0x47d6f
>>> 0x5be7822a    jvm + 0x4822a
>>> 0x5be794c0    jvm + 0x494c0
>>> 0x5be7950a    jvm + 0x4950a
>>> 0x5bf20de5    jvm!_JVM_FindClassFromClass at 16 + 0x135
>>> 0x73b515cd    verify + 0x15cd
>>> 0x73b51d53    verify + 0x1d53
>>> 0x73b52c67    verify + 0x2c67
>>> 0x14d6f5e8        ????????
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 2 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6b3d    jvm!_JVM_FindSignal at 4 + 0x286d
>>> 0x5bf73ecc    jvm!JVM_GetThreadStateNames + 0x47a7c
>>> 0x5bf741fc    jvm!JVM_GetThreadStateNames + 0x47dac
>>> 0x5bf99671    jvm!JVM_GetThreadStateNames + 0x6d221
>>> 0x5bf99a32    jvm!JVM_GetThreadStateNames + 0x6d5e2
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> ----------------- 3 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6c49    jvm!_JVM_FindSignal at 4 + 0x2979
>>> 0x5bf78f56    jvm!JVM_GetThreadStateNames + 0x4cb06
>>> 0x5bf8e334    jvm!JVM_GetThreadStateNames + 0x61ee4
>>> 0x5bf20c15    jvm!_JVM_MonitorWait at 16 + 0x95
>>> 0x01a9ac63    * java.lang.Object.wait(long) bci:0 (Interpreted frame)
>>> 0x01a940f4    * java.lang.Object.wait() bci:2 line:502 (Interpreted 
>>> frame)
>>> 0x01a940f4    * java.lang.ref.Reference$ReferenceHandler.run() bci:36
>>> line:157 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf724a6    jvm!JVM_GetThreadStateNames + 0x46056
>>> 0x5bf72517    jvm!JVM_GetThreadStateNames + 0x460c7
>>> 0x5bf1de0f    jvm!jio_printf + 0x9f
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 4 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6c49    jvm!_JVM_FindSignal at 4 + 0x2979
>>> 0x5bf78f56    jvm!JVM_GetThreadStateNames + 0x4cb06
>>> 0x5bf8e334    jvm!JVM_GetThreadStateNames + 0x61ee4
>>> 0x5bf20c15    jvm!_JVM_MonitorWait at 16 + 0x95
>>> 0x01a9ac63    * java.lang.Object.wait(long) bci:0 (Interpreted frame)
>>> 0x01a940f4    * java.lang.ref.ReferenceQueue.remove(long) bci:44
>>> line:142 (Interpreted frame)
>>> 0x01a94054    * java.lang.ref.ReferenceQueue.remove() bci:2 line:158
>>> (Interpreted frame)
>>> 0x01a94054    * java.lang.ref.Finalizer$FinalizerThread.run() bci:36
>>> line:209 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf724a6    jvm!JVM_GetThreadStateNames + 0x46056
>>> 0x5bf72517    jvm!JVM_GetThreadStateNames + 0x460c7
>>> 0x5bf1de0f    jvm!jio_printf + 0x9f
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 5 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6b3d    jvm!_JVM_FindSignal at 4 + 0x286d
>>> 0x5bf7857e    jvm!JVM_GetThreadStateNames + 0x4c12e
>>> 0x5bf78b23    jvm!JVM_GetThreadStateNames + 0x4c6d3
>>> 0x5bf8e107    jvm!JVM_GetThreadStateNames + 0x61cb7
>>> 0x5bf8e6be    jvm!JVM_GetThreadStateNames + 0x6226e
>>> 0x5bf8e78f    jvm!JVM_GetThreadStateNames + 0x6233f
>>> 0x5bee0d10    jvm + 0xb0d10
>>> 0x5bee2854    jvm + 0xb2854
>>> 0x5bee3548    jvm + 0xb3548
>>> 0x5bea5641    jvm + 0x75641
>>> 0x01aa17be    *
>>> au.net.zeus.collection.ReferenceFactory.create(java.lang.Object,
>>> au.net.zeus.collection.RefQueue, au.net.zeus.collection.Ref) bci:229
>>> line:60 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) bci:37 line:128 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) bci:4 line:44 (Interpreted frame)
>>> 0x01a94089    *
>>> au.net.zeus.collection.ReferenceMap.wrapKey(java.lang.Object, boolean,
>>> boolean) bci:7 line:248 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceConcurrentMap.putIfAbsent(java.lan
>>> g.Object,
>>> java.lang.Object) bci:8 line:67 (Interpreted frame)
>>> 0x01a94089    *
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission,
>>> java.lang.Object) bci:161 line:260 (Interpreted frame)
>>> 0x01a940f4    *
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission)
>>> bci:27 line:202 (Interpreted frame)
>>> 0x01a940f4    * java.net.NetworkInterface.getHardwareAddress() bci:18
>>> line:447 (Interpreted frame)
>>> 0x01a94054    * java.util.concurrent.ThreadLocalRandom.initialSeed()
>>> bci:116 line:158 (Interpreted frame)
>>> 0x01a93e20    * java.util.concurrent.ThreadLocalRandom.<clinit>() 
>>> bci:14
>>> line:137 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bee0f44    jvm + 0xb0f44
>>> 0x5bee2b21    jvm + 0xb2b21
>>> 0x5bee3548    jvm + 0xb3548
>>> 0x5bea9796    jvm + 0x79796
>>> 0x5beaa7b2    jvm + 0x7a7b2
>>> 0x5bea5dc7    jvm + 0x75dc7
>>> 0x01aa12ae    *
>>> java.util.concurrent.ConcurrentHashMap.fullAddCount(long, boolean) 
>>> bci:0
>>> line:2526 (Interpreted frame)
>>> 0x01a940f4    * java.util.concurrent.ConcurrentHashMap.addCount(long,
>>> int) bci:104 line:2266 (Interpreted frame)
>>> 0x01a940f4    *
>>> java.util.concurrent.ConcurrentHashMap.putVal(java.lang.Object,
>>> java.lang.Object, boolean) bci:357 line:1070 (Interpreted frame)
>>> 0x01a94054    *
>>> java.util.concurrent.ConcurrentHashMap.putIfAbsent(java.lang.Object,
>>> java.lang.Object) bci:4 line:1535 (Interpreted frame)
>>> 0x01a94054    *
>>> java.lang.ClassLoader.getClassLoadingLock(java.lang.String) bci:23
>>> line:463 (Interpreted frame)
>>> 0x01a94054    * java.lang.ClassLoader.loadClass(java.lang.String,
>>> boolean) bci:2 line:404 (Interpreted frame)
>>> 0x01a94054    * java.lang.ClassLoader.loadClass(java.lang.String,
>>> boolean) bci:38 line:411 (Interpreted frame)
>>> 0x01a94054    *
>>> sun.misc.Launcher$AppClassLoader.loadClass(java.lang.String, boolean)
>>> bci:36 line:308 (Interpreted frame)
>>> 0x01a94054    * java.lang.ClassLoader.loadClass(java.lang.String) bci:3
>>> line:357 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf724a6    jvm!JVM_GetThreadStateNames + 0x46056
>>> 0x5bf7258f    jvm!JVM_GetThreadStateNames + 0x4613f
>>> 0x5be77d6f    jvm + 0x47d6f
>>> 0x5be7822a    jvm + 0x4822a
>>> 0x5be794c0    jvm + 0x494c0
>>> 0x5be7950a    jvm + 0x4950a
>>> 0x5be79f66    jvm + 0x49f66
>>> 0x5be715c7    jvm + 0x415c7
>>> 0x5be7a53c    jvm + 0x4a53c
>>> 0x5be817e2    jvm + 0x517e2
>>> 0x5be822d9    jvm + 0x522d9
>>> 0x5be82414    jvm + 0x52414
>>> 0x5bed85dd    jvm + 0xa85dd
>>> 0x5bee0d80    jvm + 0xb0d80
>>> 0x5bee2854    jvm + 0xb2854
>>> 0x5bee3548    jvm + 0xb3548
>>> 0x5bea5641    jvm + 0x75641
>>> 0x01aa17be    *
>>> org.cliffc.high_scale_lib.NonBlockingHashMap$SnapshotK.<init>(org.
>> cliffc.high_scale_lib.NonBlockingHashMap)
>>> bci:10 line:1167 (Interpreted frame)
>>> 0x01a940f4    *
>>> org.cliffc.high_scale_lib.NonBlockingHashMap$2.iterator() bci:8
>>> line:1200 (Interpreted frame)
>>> 0x01a94089    *
>>> au.net.zeus.collection.ReferenceProcessor$EnqueGarbageTask.run() bci:15
>>> line:166 (Interpreted frame)
>>> 0x01a94129    * java.util.concurrent.Executors$RunnableAdapter.call()
>>> bci:4 line:511 (Interpreted frame)
>>> 0x01a94089    * java.util.concurrent.FutureTask.runAndReset() bci:47
>>> line:308 (Interpreted frame)
>>> 0x01a93ba0    *
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTa
>>> sk.access$301(java.util.concurrent.ScheduledThreadPoolExecutor$Sch
>>> eduledFutureTask)
>>> bci:1 line:180 (Interpreted frame)
>>> 0x01a93ba0    *
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTa
>>> sk.run()
>>> bci:37 line:294 (Interpreted frame)
>>> 0x01a94129    *
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concur
>>> rent.ThreadPoolExecutor$Worker)
>>> bci:95 line:1142 (Interpreted frame)
>>> 0x01a940f4    * java.util.concurrent.ThreadPoolExecutor$Worker.run()
>>> bci:5 line:617 (Interpreted frame)
>>> 0x01a94129    * java.lang.Thread.run() bci:11 line:744 (Interpreted 
>>> frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf724a6    jvm!JVM_GetThreadStateNames + 0x46056
>>> 0x5bf72517    jvm!JVM_GetThreadStateNames + 0x460c7
>>> 0x5bf1de0f    jvm!jio_printf + 0x9f
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - <0x03d58650>, (a 
>>> java/util/concurrent/ThreadPoolExecutor$Worker)
>>> ----------------- 6 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> ----------------- 7 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd9539    jvm!_JVM_FindSignal at 4 + 0x5269
>>> 0x5bfd9607    jvm!_JVM_FindSignal at 4 + 0x5337
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 8 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6c49    jvm!_JVM_FindSignal at 4 + 0x2979
>>> 0x5bf7856b    jvm!JVM_GetThreadStateNames + 0x4c11b
>>> 0x5bf78b23    jvm!JVM_GetThreadStateNames + 0x4c6d3
>>> 0x5bf8e107    jvm!JVM_GetThreadStateNames + 0x61cb7
>>> 0x5bf8e6be    jvm!JVM_GetThreadStateNames + 0x6226e
>>> 0x5bf8e78f    jvm!JVM_GetThreadStateNames + 0x6233f
>>> 0x5bee0d10    jvm + 0xb0d10
>>> 0x5bee2854    jvm + 0xb2854
>>> 0x5bee3548    jvm + 0xb3548
>>> 0x5bea5641    jvm + 0x75641
>>> 0x01aa17be    *
>>> au.net.zeus.collection.ReferenceFactory.create(java.lang.Object,
>>> au.net.zeus.collection.RefQueue, au.net.zeus.collection.Ref) bci:229
>>> line:60 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) bci:37 line:128 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceProcessor.referenced(java.lang.Object,
>>> boolean, boolean) bci:4 line:44 (Interpreted frame)
>>> 0x01a94089    *
>>> au.net.zeus.collection.ReferenceMap.wrapKey(java.lang.Object, boolean,
>>> boolean) bci:7 line:248 (Interpreted frame)
>>> 0x01a94054    *
>>> au.net.zeus.collection.ReferenceConcurrentMap.putIfAbsent(java.lan
>>> g.Object,
>>> java.lang.Object) bci:8 line:67 (Interpreted frame)
>>> 0x01a94089    *
>>> org.apache.river.api.security.CombinerSecurityManager.checkPermiss
>>> ion(java.security.Permission,
>>> java.lang.Object) bci:161 line:260 (Interpreted frame)
>>> 0x01a940f4    *
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTr
>>> ustPermission(java.lang.Class)
>>> bci:59 line:1848 (Interpreted frame)
>>> 0x01a940f4    *
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBea
>>> n(java.lang.Object,
>>> javax.management.ObjectName) bci:25 line:322 (Interpreted frame)
>>> 0x01a94089    * com.sun.jmx.mbeanserver.JmxMBeanServer$2.run() bci:17
>>> line:1225 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf299ed    jvm!_JVM_DoPrivileged at 20 + 0x2bd
>>> 0x73b21047
>>> java_73b20000!_Java_java_security_AccessController_doPrivileged__L
>>> java_security_PrivilegedExceptionAction_2 at 12
>>> + 0x15
>>> 0x01a94054    * com.sun.jmx.mbeanserver.JmxMBeanServer.initialize()
>>> bci:25 line:1223 (Interpreted frame)
>>> 0x01a940f4    *
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.<init>(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate,
>>> com.sun.jmx.mbeanserver.MBeanInstantiator, boolean, boolean) bci:133
>>> line:255 (Interpreted frame)
>>> 0x01a940f4    *
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServer(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate,
>>> boolean) bci:13 line:1437 (Interpreted frame)
>>> 0x01a94054    *
>>> javax.management.MBeanServerBuilder.newMBeanServer(java.lang.String,
>>> javax.management.MBeanServer, javax.management.MBeanServerDelegate)
>>> bci:4 line:110 (Interpreted frame)
>>> 0x01a94054    *
>>> javax.management.MBeanServerFactory.newMBeanServer(java.lang.String)
>>> bci:36 line:329 (Interpreted frame)
>>> 0x01a94054    *
>>> javax.management.MBeanServerFactory.createMBeanServer(java.lang.String)
>>> bci:6 line:231 (Interpreted frame)
>>> 0x01a94054    * javax.management.MBeanServerFactory.createMBeanServer()
>>> bci:1 line:192 (Interpreted frame)
>>> 0x01a94054    *
>>> java.lang.management.ManagementFactory.getPlatformMBeanServer() bci:29
>>> line:468 (Interpreted frame)
>>> 0x01a94054    *
>>> sun.management.jmxremote.ConnectorBootstrap.startLocalConnectorServer()
>>> bci:66 line:518 (Interpreted frame)
>>> 0x01a94054    * sun.management.Agent.startLocalManagementAgent() bci:13
>>> line:138 (Interpreted frame)
>>> 0x01a940f4    * sun.management.Agent.startAgent(java.util.Properties)
>>> bci:76 line:260 (Interpreted frame)
>>> 0x01a940f4    * sun.management.Agent.agentmain(java.lang.String) bci:45
>>> line:128 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5bf7e73a    jvm!JVM_GetThreadStateNames + 0x522ea
>>> 0x5bf7e993    jvm!JVM_GetThreadStateNames + 0x52543
>>> 0x5bf22b03    jvm!_JVM_InvokeMethod at 16 + 0xb3
>>> 0x73b23a6e
>>> java_73b20000!_Java_sun_reflect_NativeMethodAccessorImpl_invoke0 at 20 
>>> + 0x15
>>> 0x01a94054    *
>>> sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
>>> java.lang.Object[]) bci:100 line:62 (Interpreted frame)
>>> 0x01a94054    *
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
>>> java.lang.Object[]) bci:6 line:43 (Interpreted frame)
>>> 0x01a94089    * java.lang.reflect.Method.invoke(java.lang.Object,
>>> java.lang.Object[]) bci:56 line:483 (Interpreted frame)
>>> 0x01a94054    *
>>> sun.instrument.InstrumentationImpl.loadClassAndStartAgent(java.lan
>>> g.String,
>>> java.lang.String, java.lang.String) bci:192 line:388 (Interpreted 
>>> frame)
>>> 0x01a940f4    *
>>> sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(java.
>>> lang.String,
>>> java.lang.String) bci:5 line:411 (Interpreted frame)
>>> 0x01a903d7 <StubRoutines>
>>> 0x5bf72285    jvm!JVM_GetThreadStateNames + 0x45e35
>>> 0x5c0370be    jvm!_JVM_FindSignal at 4 + 0x62dee
>>> 0x5bf7231e    jvm!JVM_GetThreadStateNames + 0x45ece
>>> 0x5befe951    jvm!JNI_GetCreatedJavaVMs + 0x71a1
>>> 0x5bf01788    jvm!JNI_GetCreatedJavaVMs + 0x9fd8
>>> 0x6db62878    instrument!Agent_OnAttach + 0x76b
>>> 0x6db63eea    instrument!Agent_OnAttach + 0x1ddd
>>> 0x6db6234a    instrument!Agent_OnAttach + 0x23d
>>> 0x5bf3c50c    jvm!JVM_GetThreadStateNames + 0x100bc
>>> 0x5bf9b05e    jvm!JVM_GetThreadStateNames + 0x6ec0e
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 9 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6b3d    jvm!_JVM_FindSignal at 4 + 0x286d
>>> 0x5bf73ecc    jvm!JVM_GetThreadStateNames + 0x47a7c
>>> 0x5bf7424a    jvm!JVM_GetThreadStateNames + 0x47dfa
>>> 0x5be9253b    jvm + 0x6253b
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 10 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6c49    jvm!_JVM_FindSignal at 4 + 0x2979
>>> 0x5bf73ec1    jvm!JVM_GetThreadStateNames + 0x47a71
>>> 0x5bf741fc    jvm!JVM_GetThreadStateNames + 0x47dac
>>> 0x5bf829a5    jvm!JVM_GetThreadStateNames + 0x56555
>>> 0x5bf945fc    jvm!JVM_GetThreadStateNames + 0x681ac
>>> 0x5bf94e8a    jvm!JVM_GetThreadStateNames + 0x68a3a
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>> Locked ownable synchronizers:
>>>       - None
>>> ----------------- 11 -----------------
>>> 0x77c870f4    ntdll!KiFastSystemCallRet
>>> 0x76a9c3d3    kernel32!WaitForSingleObjectEx + 0x43
>>> 0x76a9c382    kernel32!WaitForSingleObject + 0x12
>>> 0x5bfd6b3d    jvm!_JVM_FindSignal at 4 + 0x286d
>>> 0x5bf73ecc    jvm!JVM_GetThreadStateNames + 0x47a7c
>>> 0x5bf741fc    jvm!JVM_GetThreadStateNames + 0x47dac
>>> 0x5bf8f904    jvm!JVM_GetThreadStateNames + 0x634b4
>>> 0x5bf8f9a7    jvm!JVM_GetThreadStateNames + 0x63557
>>> 0x5bfd9186    jvm!_JVM_FindSignal at 4 + 0x4eb6
>>> 0x614dc556    msvcr100!_endthreadex + 0x3a
>>> 0x614dc600    msvcr100!_endthreadex + 0xe4
>>> 0x76a9ee1c    kernel32!BaseThreadInitThunk + 0x12
>>> 0x77ca37eb    ntdll!RtlInitializeExceptionChain + 0xef
>>> 0x77ca37be    ntdll!RtlInitializeExceptionChain + 0xc2
>>>
>>>
>>> _______________________________________________
>>> Concurrency-interest mailing list
>>> Concurrency-interest at cs.oswego.edu
>>> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>> _______________________________________________
>> Concurrency-interest mailing list
>> Concurrency-interest at cs.oswego.edu
>> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>



More information about the Concurrency-interest mailing list