A promise library & concurrency toolkit for Clojure and ClojureScript.
Reverted deprecation for then'
and for chain'
.
Relevant changes (mainly focused on JVM/Clojure):
promesa.exec.csp
(channels & csp patterns for Clojure, that leverages vthreads)mult
support to promesa.exec.csp
promesa.exec.csp/pipe
(and many other helpers) do not need internal go-block, making them viable to use in non-vthreads supporting runtime.Duration
instances to be passed for schedule
and many other timeout related arities.promesa.core/await!
helper for uniformly wait blocking current thread an asynchronous work termination (such that Thread
, CountDownLatch
, or CompletableFuture
, where each one implements its own mechanism and await! unifies it under single API call, do not be confused with async/await functionality)mcat
, merr
, hmap
, hcat
and fnly
promise composition functions that intends to be used with ->>
instead of ->
and focused on performance/efficiency because they a re not performing defensive unwrapping (in difference to then
, handle
and catch
)promise?
to check for IPromise protocol instead of concrete types. Now it should
more easy extend promise to other promise like types.promise.core/do!
macro to promise.core/do
(backward compatible, previous
macro still in the codebase)with-redefs
macro (thanks to @eccentric-j)REVERT: Make promise? to check for IPromise protocol instead of concrete types. Because the impl was wrong.
promise?
to check for IPromise protocol instead of concrete types.promesa.exec/with-dispatch
macro.bind
function behave as it should behave (like bind and
not being then
alias). This is technically a breaking change.