Janet 1.17.1-e1c4fc2 Documentation
(Other Versions: 1.16.1 1.15.0 1.13.1 1.12.2 1.11.1 1.10.1 1.9.1 1.8.1 1.7.0 1.6.0 1.5.1 1.5.0 1.4.0 1.3.1 )


The thread module has been deprecated, please use the ev/ module and the ev/thread function to launch threads. The `thread/` module will be removed in a future release.


thread/close thread/current thread/exit thread/new thread/receive thread/send

thread/close cfunction source
(thread/close thread)

Close a thread, unblocking it and ending communication with it. Note that closing a thread is idempotent and does not cancel the thread's operation. Returns nil.
Community Examples

thread/current cfunction source

Get the current running thread.
Community Examples

thread/exit cfunction source
(thread/exit &opt code)

Exit from the current thread. If no more threads are running, ends the process, but otherwise does not end the current process.
Community Examples

thread/new cfunction source
(thread/new func &opt capacity flags)

Start a new thread that will start immediately. If capacity is provided, that is how many messages can be stored in the thread's mailbox before blocking senders. The capacity must be between 1 and 65535 inclusive, and defaults to 10. Can optionally provide flags to the new thread - supported flags are:

* `:h` - Start a heavyweight thread. This loads the core environment by default, so may use more memory initially. Messages may compress better, though.
* `:a` - Allow sending over registered abstract types to the new thread
* `:c` - Send over cfunction information to the new thread (no longer supported).
Returns a handle to the new thread.
Community Examples

thread/receive cfunction source
(thread/receive &opt timeout)

Get a message sent to this thread. If timeout (in seconds) is provided, an error will be thrown after the timeout has elapsed but no messages are received. The default timeout is 1 second, and math/inf cam be passed to turn off the timeout.
Community Examples

thread/send cfunction source
(thread/send thread msgi &opt timeout)

Send a message to the thread. By default, the timeout is 1 second, but an optional timeout in seconds can be provided. Use math/inf for no timeout. Will throw an error if there is a problem sending the message.
Community Examples