Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 java.base.jmod - Base Module
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module.
JDK 17 Base module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.base.jmod.
JDK 17 Base module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Base module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ java/lang/invoke/VolatileCallSite.java
/* * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.lang.invoke; /** * A {@code VolatileCallSite} is a {@link CallSite} whose target acts like a volatile variable. * An {@code invokedynamic} instruction linked to a {@code VolatileCallSite} sees updates * to its call site target immediately, even if the update occurs in another thread. * There may be a performance penalty for such tight coupling between threads. * <p> * Unlike {@code MutableCallSite}, there is no * {@linkplain MutableCallSite#syncAll syncAll operation} on volatile * call sites, since every write to a volatile variable is implicitly * synchronized with reader threads. * <p> * In other respects, a {@code VolatileCallSite} is interchangeable * with {@code MutableCallSite}. * @see MutableCallSite * @author John Rose, JSR 292 EG * @since 1.7 */ public class VolatileCallSite extends CallSite { /** * Creates a call site with a volatile binding to its target. * The initial target is set to a method handle * of the given type which will throw an {@code IllegalStateException} if called. * @param type the method type that this call site will have * @throws NullPointerException if the proposed type is null */ public VolatileCallSite(MethodType type) { super(type); } /** * Creates a call site with a volatile binding to its target. * The target is set to the given value. * @param target the method handle that will be the initial target of the call site * @throws NullPointerException if the proposed target is null */ public VolatileCallSite(MethodHandle target) { super(target); } /** * Returns the target method of the call site, which behaves * like a {@code volatile} field of the {@code VolatileCallSite}. * <p> * The interactions of {@code getTarget} with memory are the same * as of a read from a {@code volatile} field. * <p> * In particular, the current thread is required to issue a fresh * read of the target from memory, and must not fail to see * a recent update to the target by another thread. * * @return the linkage state of this call site, a method handle which can change over time * @see #setTarget */ @Override public final MethodHandle getTarget() { return getTargetVolatile(); } /** * Updates the target method of this call site, as a volatile variable. * The type of the new target must agree with the type of the old target. * <p> * The interactions with memory are the same as of a write to a volatile field. * In particular, any threads is guaranteed to see the updated target * the next time it calls {@code getTarget}. * @param newTarget the new target * @throws NullPointerException if the proposed new target is null * @throws WrongMethodTypeException if the proposed new target * has a method type that differs from the previous target * @see #getTarget */ @Override public void setTarget(MethodHandle newTarget) { setTargetVolatile(newTarget); } /** * {@inheritDoc} */ @Override public final MethodHandle dynamicInvoker() { return makeDynamicInvoker(); } }
⏎ java/lang/invoke/VolatileCallSite.java
Or download all of them as a single archive file:
File name: java.base-17.0.5-src.zip File size: 8883851 bytes Release date: 2022-09-13 Download
2023-09-26, 94483👍, 1💬
Popular Posts:
JDK 11 jdk.crypto.cryptoki.jmod is the JMOD file for JDK 11 Crypto Cryptoki module. JDK 11 Crypto KI...
JAX-RPC is an API for building Web services and clients that used remote procedure calls (RPC) and X...
How to download and install Apache XMLBeans Source Package? The source package contains Java source ...
The JSR 105 XML Digital Signature 1.0.1 FCS implementation provides an API and implementation that a...
commons-collections4-4.4 -sources.jaris the source JAR file for Apache Commons Collections 4.2, whic...