AbstractFuture<V> |
Our default Future implementation, with all state being managed without locks (except those used by the JVM).
|
Accumulator<E> |
A simple append-only collection supporting an unbounded number of concurrent readers/writers,
but a bounded number of items.
|
AsyncFuture<V> |
Our default Future implementation, with all state being managed without locks (except those used by the JVM).
|
AsyncPromise<V> |
|
AsyncPromise.WithExecutor<V> |
|
Awaitable.AbstractAwaitable |
|
Awaitable.AsyncAwaitable |
|
Awaitable.Defaults |
|
Awaitable.SyncAwaitable |
A barebones Awaitable that uses mutual exclusion.
|
BlockingQueues |
|
BlockingQueues.Sync<T> |
|
Condition.Async |
|
Condition.Sync |
|
ConditionAsConsumer.Async<T> |
|
CountDownLatch.Async |
|
CountDownLatch.Sync |
|
FutureCombiner<T> |
Netty's PromiseCombiner is not threadsafe, and we combine futures from multiple event executors.
|
ImmediateFuture<V> |
|
IntrusiveStack<T extends IntrusiveStack<T>> |
An efficient stack/list that is expected to be ordinarily either empty or close to, and for which
we need concurrent insertions and do not need to support removal - i.e.
|
LoadingMap<K,V> |
An extension of NonBlockingHashMap where all values are wrapped by Future .
|
NonBlockingRateLimiter |
A rate limiter implementation that allows callers to reserve permits that may only be available
in the future, delegating to them decisions about how to schedule/delay work and whether or not
to block execution to do so.
|
NotScheduledFuture<T> |
|
OpOrder |
A class for providing synchronization between producers and consumers that do not
communicate directly with each other, but where the consumers need to process their
work in contiguous batches.
|
OpOrder.Group |
Represents a group of identically ordered operations, i.e.
|
Ref<T> |
An object that needs ref counting does the two following:
- defines a Tidy object that will cleanup once it's gone,
(this must retain no references to the object we're tracking (only its resources and how to clean up))
Then, one of two options:
1) Construct a Ref directly pointing to it, and always use this Ref; or
2)
- implements RefCounted
- encapsulates a Ref, we'll call selfRef, to which it proxies all calls to RefCounted behaviours
- users must ensure no references to the selfRef leak, or are retained outside of a method scope.
|
Ref.DirectBufferRef<T extends sun.nio.ch.DirectBuffer> |
A version of Ref for objects that implement DirectBuffer .
|
Ref.IdentityCollection |
|
Refs<T extends RefCounted<T>> |
A collection of managed Ref references to RefCounted objects, and the objects they are referencing.
|
Semaphore.Standard |
|
SharedCloseableImpl |
A simple abstract implementation of SharedCloseable
|
SyncFuture<V> |
Netty's DefaultPromise uses a mutex to coordinate notifiers AND waiters between the eventLoop and the other threads.
|
SyncPromise<V> |
|
SyncPromise.WithExecutor<V> |
|
ThreadLocals |
|
Threads |
|
Threads.StackTraceCombiner |
|
Transactional.AbstractTransactional |
A simple abstract implementation of Transactional behaviour.
|
WaitQueue.Standard |
|
WaitQueue.Standard.AbstractSignal |
An abstract signal implementation
TODO: use intrusive linked list
|
WeightedQueue<T> |
Weighted queue is a wrapper around any blocking queue that turns it into a blocking weighted queue.
|
WrappedSharedCloseable |
An implementation of SharedCloseable that wraps a normal AutoCloseable,
ensuring its close method is only called when all instances of SharedCloseable have been
|