RFR: 7933: Avoid volatile writes for default field values
Marcus Hirt
hirt at openjdk.org
Wed Oct 19 17:03:15 UTC 2022
On Sat, 1 Oct 2022 10:47:21 GMT, Christoph Dreis <duke at openjdk.org> wrote:
> Hi,
>
> this PR avoids some volatile writes similar to https://bugs.openjdk.org/browse/JMC-7414.
>
> Since I can't create JIRA issues, I hope you can create this for me. Let me know if I can help in any other way, though. It has been a while since I contributed to JMC
>
> Cheers,
> Christoph
Changes requested by hirt (Lead).
agent/src/main/java/org/openjdk/jmc/agent/impl/DefaultTransformRegistry.java line 95:
> 93: private final HashMap<String, List<TransformDescriptor>> transformData = new HashMap<>();
> 94:
> 95: private volatile boolean revertInstrumentation;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.console.jconsole/src/main/java/org/openjdk/jmc/console/jconsole/tabs/JConsolePluginTabbedPane.java line 72:
> 70: private final List<JConsolePlugin> plugins = new ArrayList<>();
> 71: private final Map<JConsolePlugin, SwingWorker<?, ?>> swingWorkers = new HashMap<>();
> 72: private volatile boolean disposeTimerTask;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.greychart/src/main/java/org/openjdk/jmc/greychart/providers/AveragingProvider.java line 65:
> 63: private long m_requestedStartX = Long.MIN_VALUE;
> 64: private long m_requestedEndX = Long.MAX_VALUE;
> 65: private volatile boolean dataChangeOccured;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.greychart/src/main/java/org/openjdk/jmc/greychart/providers/IntermediateStackingProvider.java line 65:
> 63:
> 64: private int m_lastSubSampleWidth = -1;
> 65: private volatile boolean dataChangeOccured;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.greychart/src/main/java/org/openjdk/jmc/greychart/providers/SampleCountingProvider.java line 69:
> 67: private long m_requestedEndX = Long.MAX_VALUE;
> 68:
> 69: private volatile boolean dataChangeOccured;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.greychart/src/main/java/org/openjdk/jmc/greychart/providers/SubsamplingProvider.java line 71:
> 69: private long m_requestedStartX = Long.MIN_VALUE;
> 70: private long m_requestedEndX = Long.MAX_VALUE;
> 71: private volatile boolean dataChangeOccured;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/util/NumberToObjectMap.java line 54:
> 52: protected int firstElementIdx, prevAddedElementIdx;
> 53:
> 54: private volatile Collection<V> valuesCollectionView;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/util/ValueWitIntIdMap.java line 58:
> 56: private int size, capacity, threshold;
> 57:
> 58: volatile Collection<V> valuesCollectionView;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.rjmx/src/main/java/org/openjdk/jmc/rjmx/subscription/internal/DefaultAttributeSubscriptionThread.java line 90:
> 88: private boolean sendNulls;
> 89:
> 90: private volatile boolean collectDebugInfo;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.rjmx/src/main/java/org/openjdk/jmc/rjmx/subscription/internal/DefaultNotificationSubscriptionManager.java line 74:
> 72: private final MBeanServerConnection mbeanServer;
> 73:
> 74: private volatile boolean collectDebugInfo;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.ui.common/src/main/java/org/openjdk/jmc/ui/common/util/FilterMatcher.java line 55:
> 53: private final static FilterMatcher instance = new FilterMatcher();
> 54:
> 55: private static volatile Pattern lastPattern;
Please don't forget to update the copyright year.
application/org.openjdk.jmc.ui/src/main/java/org/openjdk/jmc/ui/polling/PollManager.java line 56:
> 54: private final Vector<Pollable> m_pollableObjects = new Vector<>();
> 55: volatile private int m_pollingInterval;
> 56: volatile private boolean m_keepAlive;
Please don't forget to update the copyright year.
application/tests/org.openjdk.jmc.rjmx.test/src/test/java/org/openjdk/jmc/rjmx/test/synthetic/SyntheticNotificationTest.java line 63:
> 61: private IConnectionHandle handle;
> 62: private MBeanServerConnection connection;
> 63: private volatile boolean gotNotification;
Please don't forget to update the copyright year.
core/org.openjdk.jmc.flightrecorder.writer/src/main/java/org/openjdk/jmc/flightrecorder/writer/MetadataImpl.java line 77:
> 75: private final Set<ResolvableType> unresolvedTypes = new CopyOnWriteArraySet<>();
> 76:
> 77: private volatile TypesImpl types;
Please don't forget to update the copyright year.
core/tests/org.openjdk.jmc.common.test/src/main/java/org/openjdk/jmc/common/util/BoundedListTest.java line 51:
> 49: private static class ProducerThread implements Runnable {
> 50: private final BoundedList<Long> list;
> 51: private volatile boolean shouldStop;
Please don't forget to update the copyright year.
-------------
PR: https://git.openjdk.org/jmc/pull/435
More information about the jmc-dev
mailing list