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

hudson.CopyOnWrite Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2009 Oracle Corporation.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * 
*    Kohsuke Kawaguchi
 *
 *
 *******************************************************************************/ 

package hudson;

import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.FIELD;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.SOURCE;
import java.lang.annotation.Target;

/**
 * Represents fields that are protected for concurrency by the copy-on-write
 * semantics.
 *
 * 

Fields marked by this annotation always holds on to an immutable * collection. A change to the collection must be done by first creating a new * collection object, making changes, then replacing the reference atomically. * *

This allows code to access the field without synchronization, and greatly * reduces the risk of dead-lock bugs. * *

The field marked with this annotation usually needs to be marked as * volatile. * * @author Kohsuke Kawaguchi */ @Retention(SOURCE) @Documented @Target(FIELD) public @interface CopyOnWrite { }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy