package synctest

import "internal/synctest"

Package synctest provides support for testing concurrent code.

See the testing/synctest package for function documentation.

Index

Constants

const (
	Unbubbled     = Association(iota) // not associated with any bubble
	CurrentBubble                     // associated with the current bubble
	OtherBubble                       // associated with a different bubble
)

Functions

func Disassociate

func Disassociate[T any](p *T)

Disassociate disassociates p from any bubble.

func IsAssociated

func IsAssociated[T any](p *T) bool

IsAssociated reports whether p is associated with the current bubble.

func IsInBubble

func IsInBubble() bool

IsInBubble reports whether the current goroutine is in a bubble.

func Run

func Run(f func())

func Wait

func Wait()

Types

type Association

type Association int

Association is the state of a pointer's bubble association.

func Associate

func Associate[T any](p *T) Association

Associate attempts to associate p with the current bubble. It returns the new association status of p.

type Bubble

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

A Bubble is a synctest bubble.

Not a public API. Used by syscall/js to propagate bubble membership through syscalls.

func Acquire

func Acquire() *Bubble

Acquire returns a reference to the current goroutine's bubble. The bubble will not become idle until Release is called.

func (*Bubble) Release

func (b *Bubble) Release()

Release releases the reference to the bubble, allowing it to become idle again.

func (*Bubble) Run

func (b *Bubble) Run(f func())

Run executes f in the bubble. The current goroutine must not be part of a bubble.

Source Files

synctest.go

Version
v1.25.0-rc.1
Published
Jun 11, 2025
Platform
js/wasm
Imports
2 packages
Last checked
13 minutes ago

Tools for package owners.