All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.emul.java.lang.InheritableThreadLocal Maven / Gradle / Ivy

Go to download

Everything needed to run a comprehensive dev environment. Just type X_ and pick a service from autocomplete; new dev modules will be added as they are built. The only dev service not included in the uber jar is xapi-dev-maven, as it includes all runtime dependencies of maven, adding ~4 seconds to build time, and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).

The newest version!

package java.lang;

/**
 * TODO:
 * properly support threadlocals beyond a singleton for single-threaded gwt.
 * 
 * Either using "virtual threads" to represent an operation's environment,
 * or other iframe windows / web workers existing as actual separate threads;
 * provided all inter-thread communication is handled with serializable objects,
 * and async interfaces for accessing functionality, it should be possible
 * to build a single unified multi threading api that will work on the client
 * and on the server.
 * 
 * Original documentation for InheritableThreadLocal:
 * 
 * 
 * This class extends ThreadLocal to provide inheritance of values
 * from parent thread to child thread: when a child thread is created, the
 * child receives initial values for all inheritable thread-local variables
 * for which the parent has values.  Normally the child's values will be
 * identical to the parent's; however, the child's value can be made an
 * arbitrary function of the parent's by overriding the childValue
 * method in this class.
 * 
 * 

Inheritable thread-local variables are used in preference to * ordinary thread-local variables when the per-thread-attribute being * maintained in the variable (e.g., User ID, Transaction ID) must be * automatically transmitted to any child threads that are created. * * @author Josh Bloch and Doug Lea * @version %I%, %G% * @see ThreadLocal * @since 1.2 */ public class InheritableThreadLocal extends ThreadLocal { /** * Computes the child's initial value for this inheritable thread-local * variable as a function of the parent's value at the time the child * thread is created. This method is called from within the parent * thread before the child is started. *

* This method merely returns its input argument, and should be overridden * if a different behavior is desired. * * @param parentValue the parent thread's value * @return the child thread's initial value */ protected T childValue(T parentValue) { return parentValue; } // /** // * Get the map associated with a ThreadLocal. // * // * @param t the current thread // */ // ThreadLocalMap getMap(Thread t) { // return t.inheritableThreadLocals; // } /** * Create the map associated with a ThreadLocal. * * @param t the current thread * @param firstValue value for the initial entry of the table. * @param map the map to store. */ void createMap(Thread t, T firstValue) { // t.inheritableThreadLocals = new ThreadLocalMap(this, firstValue); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy