net.sf.saxon.trace.Locksmith Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Saxon-HE Show documentation
Show all versions of Saxon-HE Show documentation
The XSLT and XQuery Processor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2023 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package net.sf.saxon.trace;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Locksmith
{
public static Map lockCounts = new ConcurrentHashMap<>();
public static void countLock(String lockName)
{
if (lockCounts.containsKey(lockName))
{
lockCounts.put(lockName, lockCounts.get(lockName) + 1);
}
else
{
lockCounts.put(lockName, 1L);
}
}
static
{
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable()
{
@Override
public void run()
{
for (Map.Entry entry : lockCounts.entrySet())
{
System.out.println("LOCK COUNT: " + entry.getKey() + " : " + entry.getValue());
}
}
}));
}
}