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

org.eclipse.jetty.client.Synchronizable Maven / Gradle / Ivy

There is a newer version: 11.0.0.beta1
Show newest version
//
//  ========================================================================
//  Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd.
//  ------------------------------------------------------------------------
//  All rights reserved. This program and the accompanying materials
//  are made available under the terms of the Eclipse Public License v1.0
//  and Apache License v2.0 which accompanies this distribution.
//
//      The Eclipse Public License is available at
//      http://www.eclipse.org/legal/epl-v10.html
//
//      The Apache License v2.0 is available at
//      http://www.opensource.org/licenses/apache2.0.php
//
//  You may elect to redistribute this code under either of these licenses.
//  ========================================================================
//

package org.eclipse.jetty.client;

/**
 * 

Implementations of this interface expose a lock object * via {@link #getLock()} so that callers can synchronize * externally on that lock:

*
 * if (iterator instanceof Synchronizable)
 * {
 *     Object element = null;
 *     synchronized (((Synchronizable)iterator).getLock())
 *     {
 *         if (iterator.hasNext())
 *             element = iterator.next();
 *     }
 * }
 * 
*

In the example above, the calls to {@code hasNext()} and * {@code next()} are performed "atomically".

*/ public interface Synchronizable { /** * @return the lock object to synchronize on */ public Object getLock(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy