Liking cljdoc? Tell your friends :D

csp-clj.protocols.channel

Core channel protocol defining the fundamental operations for all channel implementations in csp-clj.

This protocol abstracts over buffered and unbuffered channels, providing a uniform interface for:

  • Synchronous/asynchronous value transfer
  • Channel lifecycle management
  • Timeout support for blocking operations

Thread Safety: All methods in this protocol are thread-safe and may be called concurrently from multiple virtual threads.

Core channel protocol defining the fundamental operations for all
channel implementations in csp-clj.

This protocol abstracts over buffered and unbuffered channels,
providing a uniform interface for:
- Synchronous/asynchronous value transfer
- Channel lifecycle management
- Timeout support for blocking operations

Thread Safety:
All methods in this protocol are thread-safe and may be called
concurrently from multiple virtual threads.
raw docstring

Channelcljprotocol

Protocol for channel operations.

Implementations of close! must be idempotent — multiple calls should be safe and have no additional effect. This is required because concurrent shutdown paths (e.g., multiplexer dispatch-loop cleanup and tap! undo) may call close! on the same channel from different threads.

Protocol for channel operations.

Implementations of close! must be idempotent — multiple calls should
be safe and have no additional effect. This is required because
concurrent shutdown paths (e.g., multiplexer dispatch-loop cleanup
and tap! undo) may call close! on the same channel from different
threads.

close!clj

(close! ch)

closed?clj

(closed? ch)

put!clj

(put! ch value)
(put! ch value timeout-ms)

take!clj

(take! ch)
(take! ch timeout-ms)
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close