etm

module
v0.0.0-...-fb759ef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2023 License: 0BSD

README

Etm

GoDoc Build Status Coverage Status

This library implements primatives for the epochal time model as defined in the Clojure programming language. These primatives are useful for creating concurrent code that is easy to reason about. See Are we there yet? for details on this model.

Getting started

go get jsouthworth.net/go/etm

Usage

The full documentation is available at jsouthworth.net/go/etm

License

This project is licensed under the 0BSD License - see LICENSE

Acknowledgments

  • Rich Hickey's presentation on the Epochal Time Model, Are we there yet?.
  • The Clojure project implements mechanisms with these semnatics and the documentation was helpful in creating the versions here.

TODO

  • Add STM support.

Directories

Path Synopsis
Package agent implements a mechanism to manage a single piece of state.
Package agent implements a mechanism to manage a single piece of state.
Package atom implements a mechanism to manage a single piece of shared state synchronously.
Package atom implements a mechanism to manage a single piece of shared state synchronously.
internal
mpscq
Package mpscq implements a Multi-Producer, Single-Consumer Lock-free Queue.
Package mpscq implements a Multi-Producer, Single-Consumer Lock-free Queue.
unsafe/ref
Package ref implements primatives used by the other abstractions in this library.
Package ref implements primatives used by the other abstractions in this library.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL