Skip to content

lib/context

import "github.com/eugenioenko/goalchemy/lib/context"

Package context provides Goalchemy’s cancellation contexts; deadlines use the virtual clock.

Function c csharp go java python rust swift typescript
Background yes yes yes yes yes yes yes yes
Canceled yes yes yes yes yes yes yes yes
Context.Done yes yes yes yes yes yes yes yes
Context.Err yes yes yes yes yes yes yes yes
DeadlineExceeded yes yes yes yes yes yes yes yes
WithCancel yes yes yes yes yes yes yes yes
WithTimeout yes yes yes yes yes yes yes yes
func Background() Context

The never-cancelled root context.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Contract: std.context.background 1.0.0
var Canceled error

The sentinel error for context canceled.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Errors: Error() is context canceled.
  • Contract: std.context.canceled 1.0.0
func (ctx Context) Done() <-chan struct{}

The channel closed on cancellation.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Contract: std.context.done 1.0.0
func (ctx Context) Err() error

Nil until cancelled, then context.Canceled or context.DeadlineExceeded.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Errors: context.Canceled has message context canceled; context.DeadlineExceeded has message context deadline exceeded.
  • Contract: std.context.err 1.0.0
var DeadlineExceeded error

The sentinel error for context deadline exceeded.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Errors: Error() is context deadline exceeded.
  • Contract: std.context.deadline_exceeded 1.0.0
func WithCancel(parent Context) (Context, CancelFunc)

A child whose cancel function closes Done and sets Err to context.Canceled.

  • Gate: sequential (never suspends)
  • Determinism: deterministic
  • Contract: std.context.with_cancel 1.0.0
func WithTimeout(parent Context, d time.Duration) (Context, CancelFunc)

A child cancelled with context.DeadlineExceeded after a scheduler-clock duration.

  • Gate: sequential (never suspends)
  • Determinism: controlled
  • Contract: std.context.with_timeout 1.0.0