Package pt.ua.concurrent

A concurrent library based on Design-by-Contract.

See:
          Description

Interface Summary
Barrier A thread barrier interface.
InterruptibleAwaitingThreads Java's interface to extend support for Interruptible Awaiting Threads.
Signal A simple signal abstraction module.
Sync Java's interface for locks.
SyncCV Java's interface for condition variables.
 

Class Summary
Actor An actor module (object-oriented approach for message passing concurrent programming).
BinarySemaphore Binary semaphore class.
BoundedSemaphore Bounded semaphore class (a semaphore that cannot exceed a given value).
Channel<T> A simple module support a (generic) communication channel between two threads.
CObject A replacement for Object to ease and augment the usage of concurrent related methods.
Console System output related static utilities (supporting colors).
CRunnable A replacement for Runnable to handle exceptions (and other details).
CThread Thread related static utilities.
DynamicBarrier A dynamically sized thread barrier class.
Event A simple module supporting two valued events.
Exchanger<T> A simple module support a (generic) exchanger (bidirectional) communication channel between two threads.
FixedBarrier A fixed sized thread barrier class.
Future<T> Actor's Futures class.
GroupMutex Group mutex.
GroupMutexComposedCV A composed conditional variable for an exterior GroupMutex with a list of alternative internal Sync objects (used, for example, to integrate internal, external and conditional synchronization of shared objects).
GroupMutexCV Group exclusion conditional variable class.
Mutex Mutual exclusion lock.
MutexCV Mutex conditional variable class.
PersistentSignal A persistent signal module (signals are kept until a successful delivery).
RWEx Readers-writer exclusion class.
RWExCV Readers-writer exclusion conditional variable class.
Semaphore A standard counting semaphore class.
SyncState  
TransientSignal A transient signal module (signals thrown away if no one is waiting).
 

Enum Summary
GroupMutex.Priority Locking priority choices:
CURRENT_ACTIVE_GROUP: active group is always preferred;
GROUP_NUMBER_INCREASING: the higher the group number the higher its priority;
GROUP_NUMBER_DECREASING: the lower the group number the higher its priority;
TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!).
Mutex.Priority Locking priority choices:
UNDEFINED: undefined priority (default);
TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!).
RWEx.Priority Locking priority choices:
WRITER: priority to writers (a waiting writer prevents new readers from getting the lock);
READERS: priority to readers (a waiting reader prevents new writers from getting the lock);
TIME_OF_ARRIVAL: priority ordered by decreasing waiting time (not yet implemented!).
 

Exception Summary
ThreadInterruptedException InterruptedException unchecked exception replacement.
 

Package pt.ua.concurrent Description

A concurrent library based on Design-by-Contract.

Author:
Miguel Oliveira e Silva (mos@ua.pt) a replacement of Object for Sync and/or SynCV purposes, a replacement of Thread, a output to a console supporting colors, InterruptedException unchecked exception replacement, a replacement of Runnable (to correctly handle exceptions and to register start time), Java's interface to extend support for Interruptible Awaiting Threads, Java's interface for locks, Java's interface for condition variables, an internal module (to ease the implementaion of getStateAndUnlock/recoverState services), a standard general semaphore, a semaphore bounded by a maximum value, a binary semaphore, a POSIX-threads alike mutual exclusion synchronization class, a POSIX-threads alike mutex conditional variable class, a readers-writer exclusion synchronization class, a readers-writer exclusion conditional variable class, a group exclusion synchronization class, a group exclusion conditional variable class, composed group mutex CV to allow a CV applicable to a GroupMutex and one of any element of an array of Sync objects, a simple signal abstraction module, a transient signal module, a persistent signal module, a simple module supporting two valued events, a simple module support a (generic) communication channel between two threads, a simple module support a (generic) exchanger (bidirectional) communication channel between two threads, an actor communication class, actor's future results class, a thread barrier interface, a fixed sized thread barrier class, a dynamically sized thread barrier class,