package ctxwatch

import "github.com/jackc/pgx/v5/pgconn/ctxwatch"

Index

Types

type ContextWatcher

type ContextWatcher struct {
	// contains filtered or unexported fields
}

ContextWatcher watches a context and performs an action when the context is canceled. It can watch one context at a time.

func NewContextWatcher

func NewContextWatcher(handler Handler) *ContextWatcher

NewContextWatcher returns a ContextWatcher. onCancel will be called when a watched context is canceled. OnUnwatchAfterCancel will be called when Unwatch is called and the watched context had already been canceled and onCancel called.

func (*ContextWatcher) Unwatch

func (cw *ContextWatcher) Unwatch()

Unwatch stops watching the previously watched context. If the onCancel function passed to NewContextWatcher was called then onUnwatchAfterCancel will also be called.

func (*ContextWatcher) Watch

func (cw *ContextWatcher) Watch(ctx context.Context)

Watch starts watching ctx. If ctx is canceled then the onCancel function passed to NewContextWatcher will be called.

type Handler

type Handler interface {
	// HandleCancel is called when the context that a ContextWatcher is currently watching is canceled. canceledCtx is the
	// context that was canceled.
	HandleCancel(canceledCtx context.Context)

	// HandleUnwatchAfterCancel is called when a ContextWatcher that called HandleCancel on this Handler is unwatched.
	HandleUnwatchAfterCancel()
}

Source Files

context_watcher.go

Version
v5.7.2 (latest)
Published
Dec 21, 2024
Platform
linux/amd64
Imports
2 packages
Last checked
5 days ago

Tools for package owners.