Example usage for com.google.common.util.concurrent Monitor Monitor

List of usage examples for com.google.common.util.concurrent Monitor Monitor

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Monitor Monitor.

Prototype

public Monitor(boolean fair) 

Source Link

Document

Creates a monitor with the given ordering policy.

Usage

From source file:com.github.richardballard.arbeeutils.concurrent.GateBarrier.java

public GateBarrier(final @NotNull State initialState) {

    this.state = initialState;

    this.monitor = new Monitor(false);
    this.isOpenGuard = new Monitor.Guard(monitor) {
        @Override/*w  w w .j av a  2 s.com*/
        public boolean isSatisfied() {
            return state == State.OPEN;
        }
    };
}

From source file:guru.qas.martini.jmeter.control.MartiniController.java

public MartiniController() {
    super();/*  ww w  .  j  ava2  s.com*/
    monitor = new Monitor(true);
    martinisRef = new AtomicReference<>();
    iteratorRef = new AtomicReference<>();
    index = new HashMap<>();
}

From source file:com.github.nethad.clustermeister.provisioning.ec2.AmazonEC2JPPFDeployer.java

static protected Monitor getDriverMonitor(NodeMetadata metadata) {
    driverMM.enter();//from   w  w w .  j a va2s .co  m
    try {
        Monitor driverMonitor = instanceDriverMonitors.get(metadata.getId());
        if (driverMonitor == null) {
            driverMonitor = new Monitor(false);
            instanceDriverMonitors.put(metadata.getId(), driverMonitor);
        }
        return driverMonitor;
    } finally {
        driverMM.leave();
    }
}

From source file:com.github.nethad.clustermeister.provisioning.jppf.LocalDriverBuilder.java

@Override
protected ClustermeisterLauncher doBuild() {
    JPPFDriverConfigurationSource.serverPort = serverPort;
    JPPFDriverConfigurationSource.managementPort = managementPort;
    JPPFDriverConfigurationSource.jvmOptions = configuration
            .getString(ConfigurationKeys.JVM_OPTIONS_LOCAL_DRIVER, "");
    Map<String, String> loadBalancingConfigValues = new DriverLoadBalancing(configuration)
            .getLoadBalancingConfigValues();
    if (loadBalancingConfigValues.isEmpty()) {
        //                logger.info("No load balancing settings set.");
    } else {//from w  w w  .  j ava2s .  com
        for (Map.Entry<String, String> entry : loadBalancingConfigValues.entrySet()) {
            //                    logger.info("{} => {}", entry.getKey(), entry.getValue());
        }
    }
    JPPFDriverConfigurationSource.loadBalancing = new DriverLoadBalancing(configuration)
            .getLoadBalancingConfigValues();
    final ClustermeisterLauncher launcher = new ClustermeisterDriverLauncher(true);
    final AtomicBoolean initialized = new AtomicBoolean(false);
    final Monitor initializationMonitor = new Monitor(false);
    final Monitor.Guard isInitialized = new Monitor.Guard(initializationMonitor) {
        @Override
        public boolean isSatisfied() {
            return initialized.get();
        }
    };
    launcher.addObserver(new Observer() {
        @Override
        public void update(Observable o, Object arg) {
            initializationMonitor.enter();
            try {
                initialized.set(true);
            } finally {
                initializationMonitor.leave();
            }
        }
    });
    Thread driverThread = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                launcher.doLaunch(true, ClustermeisterProcessLauncher.StreamSink.LOG);
            } catch (Throwable ex) {
                logger.warn("Execption from local driver thread.", ex);
            }
        }
    });
    driverThread.setName(String.format("%s-%s", DRIVER_THREAD_NAME, driverThread.getId()));
    driverThread.start();

    //wait for driver to initialize.
    initializationMonitor.enter();
    try {
        try {
            initializationMonitor.waitFor(isInitialized);
        } catch (InterruptedException ex) {
            logger.warn("Interrupted while waiting for local driver to initialize! "
                    + "Initialization may not be complete.", ex);
        }
    } finally {
        initializationMonitor.leave();
    }
    return launcher;
}

From source file:com.github.nethad.clustermeister.provisioning.ec2.AmazonEC2JPPFDeployer.java

static protected Monitor getNodeMonitor(NodeMetadata metadata) {
    nodeMM.enter();/*w ww  .  j a  va  2s .c o  m*/
    try {
        Monitor nodeMonitor = instanceNodeMonitors.get(metadata.getId());
        if (nodeMonitor == null) {
            nodeMonitor = new Monitor(false);
            instanceNodeMonitors.put(metadata.getId(), nodeMonitor);
        }
        return nodeMonitor;
    } finally {
        nodeMM.leave();
    }
}