Documentation
¶
Index ¶
- func GoroutineID() (uint, error)
- type Future
- type FutureImpl
- func (fut *FutureImpl[T]) FlatMap(f func(T) (Future[T], error)) Future[T]
- func (fut *FutureImpl[T]) Get() (T, error)
- func (fut *FutureImpl[T]) Map(f func(T) (T, error)) Future[T]
- func (fut *FutureImpl[T]) Recover(f func() (T, error)) Future[T]
- func (fut *FutureImpl[T]) RecoverWith(rf Future[T]) Future[T]
- type OptimisticLock
- type Promise
- type PromiseImpl
- type ReentrantLock
- type Task
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Future ¶
type Future[T any] interface { // Map creates a new Future by applying a function to the successful result of this Future. Map(func(T) (T, error)) Future[T] // FlatMap creates a new Future by applying a function to the successful result of // this Future. FlatMap(func(T) (Future[T], error)) Future[T] // Get blocks until the Future is completed and returns either a result or an error. Get() (T, error) // Recover handles any error that this Future might contain using a resolver function. Recover(func() (T, error)) Future[T] // RecoverWith handles any error that this Future might contain using another Future. RecoverWith(Future[T]) Future[T] // contains filtered or unexported methods }
Future represents a value which may or may not currently be available, but will be available at some point, or an error if that value could not be made available.
func FutureFirstCompletedOf ¶
FutureFirstCompletedOf asynchronously returns a new Future to the result of the first Future in the list that is completed. This means no matter if it is completed as a success or as a failure.
func FutureTimer ¶
FutureTimer returns Future that will have been resolved after given duration; useful for FutureFirstCompletedOf for timeout purposes.
type FutureImpl ¶
type FutureImpl[T any] struct { // contains filtered or unexported fields }
FutureImpl implements the Future interface.
func (*FutureImpl[T]) FlatMap ¶
func (fut *FutureImpl[T]) FlatMap(f func(T) (Future[T], error)) Future[T]
FlatMap creates a new Future by applying a function to the successful result of this Future and returns the result of the function as a new Future.
func (*FutureImpl[T]) Get ¶
func (fut *FutureImpl[T]) Get() (T, error)
Get blocks until the Future is completed and returns either a result or an error.
func (*FutureImpl[T]) Map ¶
func (fut *FutureImpl[T]) Map(f func(T) (T, error)) Future[T]
Map creates a new Future by applying a function to the successful result of this Future and returns the result of the function as a new Future.
func (*FutureImpl[T]) Recover ¶
func (fut *FutureImpl[T]) Recover(f func() (T, error)) Future[T]
Recover handles any error that this Future might contain using a given resolver function. Returns the result as a new Future.
func (*FutureImpl[T]) RecoverWith ¶
func (fut *FutureImpl[T]) RecoverWith(rf Future[T]) Future[T]
RecoverWith handles any error that this Future might contain using another Future. Returns the result as a new Future.
type OptimisticLock ¶
type OptimisticLock struct {
// contains filtered or unexported fields
}
OptimisticLock allows optimistic reading. Implements the Locker interface and is not reentrant.
func NewOptimisticLock ¶
func NewOptimisticLock() *OptimisticLock
NewOptimisticLock returns a new OptimisticLock.
func (*OptimisticLock) OptLock ¶
func (o *OptimisticLock) OptLock() int64
OptLock returns the stamp to be verified on OptUnlock.
func (*OptimisticLock) OptUnlock ¶
func (o *OptimisticLock) OptUnlock(stamp int64) bool
OptUnlock returns true if the lock has not been acquired in write mode since obtaining a given stamp. Retry or switch to RLock in case of failure.
func (*OptimisticLock) RUnlock ¶
func (o *OptimisticLock) RUnlock()
RUnlock unlocks the resource after read.
func (*OptimisticLock) Unlock ¶
func (o *OptimisticLock) Unlock()
Unlock unlocks the resource after write.
type Promise ¶
type Promise[T any] interface { // Success completes the underlying Future with a value. Success(T) // Failure fails the underlying Future with an error. Failure(error) // Future returns the underlying Future. Future() Future[T] }
Promise represents a writable, single-assignment container, which completes a Future.
type PromiseImpl ¶
PromiseImpl implements the Promise interface.
func (*PromiseImpl[T]) Failure ¶
func (p *PromiseImpl[T]) Failure(err error)
Failure fails the underlying Future with a given error.
func (*PromiseImpl[T]) Future ¶
func (p *PromiseImpl[T]) Future() Future[T]
Future returns the underlying Future.
func (*PromiseImpl[T]) Success ¶
func (p *PromiseImpl[T]) Success(value T)
Success completes the underlying Future with a given value.
type ReentrantLock ¶
type ReentrantLock struct {
// contains filtered or unexported fields
}
ReentrantLock allows goroutines to enter the lock more than once.
func NewReentrantLock ¶
func NewReentrantLock() *ReentrantLock
NewReentrantLock returns a new ReentrantLock.
func (*ReentrantLock) Lock ¶
func (r *ReentrantLock) Lock()
Lock locks the resource. Panics if the GoroutineID call returns an error.
func (*ReentrantLock) Unlock ¶
func (r *ReentrantLock) Unlock()
Unlock unlocks the resource. Panics on trying to unlock the unlocked lock.
