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

com.hubspot.singularity.mesos.SingularitySchedulerLock Maven / Gradle / Ivy

package com.hubspot.singularity.mesos;

import java.util.concurrent.locks.ReentrantLock;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.inject.Inject;
import com.hubspot.mesos.JavaUtils;

public class SingularitySchedulerLock {

  private static final Logger LOG = LoggerFactory.getLogger(SingularitySchedulerLock.class);

  private final ReentrantLock lock;

  @Inject
  public SingularitySchedulerLock() {
    this.lock = new ReentrantLock();
  }

  public long lock(String name) {
    final long start = System.currentTimeMillis();
    LOG.info("{} - Locking", name);
    lock.lock();
    LOG.info("{} - Acquired ({})", name, JavaUtils.duration(start));
    return System.currentTimeMillis();
  }

  public void unlock(String name, long start) {
    LOG.info("{} - Unlocking ({})", name, JavaUtils.duration(start));
    lock.unlock();
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy