You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Jordan Zimmerman (JIRA)" <ji...@apache.org> on 2015/09/05 23:22:45 UTC

[jira] [Updated] (CURATOR-259) Add try-with-resources class for Curator locks

     [ https://issues.apache.org/jira/browse/CURATOR-259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jordan Zimmerman updated CURATOR-259:
-------------------------------------
    Description: 
For Java7+, try-with-resources makes using locks safer. Curator should have a utility for this. Something like:

{code}
public class SafeLock implements AutoCloseable {
  private final InterProcessLock lock;
  private final boolean acquired;
  public SafeLock(InterProcessLock lock, long timeout, TimeUnit unit) {
        this.lock = lock;
        acquired = lock.acquire(timeout, unit);
  }

  public void close() throws Exception {
      if ( acquired ) {
           lock.release();
      }
   }
}
{code}

  was:
For Java7+, try-with-resources makes using locks safer. Curator should have a utility for this. Something like:

{code}
public class SafeLock implements AutoCloseable {
  private final InterProcessLock lock;
  private final boolean acquired;
  public SafeLock(InterProcessLock lock, long timeout, TimeUnit unit) {
        this.lock = lock;
        acquired = lock.acquire(timeout, unit);
  }

   void close() throws Exception {
      if ( acquired ) {
           lock.release();
      }
   }
}
{code}


> Add try-with-resources class for Curator locks
> ----------------------------------------------
>
>                 Key: CURATOR-259
>                 URL: https://issues.apache.org/jira/browse/CURATOR-259
>             Project: Apache Curator
>          Issue Type: Improvement
>          Components: Recipes
>            Reporter: Jordan Zimmerman
>            Priority: Minor
>
> For Java7+, try-with-resources makes using locks safer. Curator should have a utility for this. Something like:
> {code}
> public class SafeLock implements AutoCloseable {
>   private final InterProcessLock lock;
>   private final boolean acquired;
>   public SafeLock(InterProcessLock lock, long timeout, TimeUnit unit) {
>         this.lock = lock;
>         acquired = lock.acquire(timeout, unit);
>   }
>   public void close() throws Exception {
>       if ( acquired ) {
>            lock.release();
>       }
>    }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)