Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sourceforge.jtds.jdbc
Class Semaphore

    java.lang.Object
      |
      +--net.sourceforge.jtds.jdbc.Semaphore

public class Semaphore
extends java.lang.Object

Simple semaphore class used to serialize access requests over the network connection.

Based on the code originally written by Doug Lea. Once JDK 1.5 is the standard this class can be replaced by the `java.util.concurrent.Sempahore` class.

Version:
  $Id: Semaphore.java,v 1.1 2004/12/20 15:51:17 alin_sinpalean Exp $
Author:
  Mike Hutchinson

Field Summary
`protected long` | `permits` Current number of available permits.

Constructor Summary
`Semaphore(long initialPermits)` Create a Semaphore with the given initial number of permits.

Method Summary
`void` | `acquire()` Wait until a permit is available, and take one.
`boolean` | `attempt(long msecs)` Wait at most msecs millisconds for a permit.
`long` | `permits()` Return the current number of available permits.
`void` | `release()` Release a permit.
`void` | `release(long n)` Release N permits.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### permits

    protected long permits

  Current number of available permits.

Constructor Detail

### Semaphore

    public Semaphore(long initialPermits)

  Create a Semaphore with the given initial number of permits. Using a seed of one makes the semaphore act as a mutual exclusion lock. Negative seeds are also allowed, in which case no acquires will proceed until the number of releases has pushed the number of permits past 0.

Method Detail

### acquire

    public void acquire()
                 throws java.lang.InterruptedException

  Wait until a permit is available, and take one.

### attempt

    public boolean attempt(long msecs)
                    throws java.lang.InterruptedException

  Wait at most msecs millisconds for a permit.

### release

    public void release()

  Release a permit.

### release

    public void release(long n)

  Release N permits. `release(n)` is equivalent in effect to:

         for (int i = 0; i < n; ++i) release();

  But may be more efficient in some semaphore implementations.
  Throws:
    `java.lang.IllegalArgumentException` - if n is negative

### permits

    public long permits()

  Return the current number of available permits. Returns an accurate, but possibly unstable value, that may change immediately after returning.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Generated on November 8 2005