core: Phase 4 — move future-done?/future-cancelled? to the overlay
Pure reads of the future's :cached/:cancelled slots over future? + get. future? stays native (deref/future-cancel/realized? call it), as do future-call and future-cancel (OS threads). Covered by the existing futures spec.
This commit is contained in:
parent
a9403e26b0
commit
790f54d2b3
2 changed files with 10 additions and 6 deletions
|
|
@ -293,3 +293,11 @@
|
|||
(jolt.host/ref-put! vol :val newval) newval)
|
||||
(defn vswap! [vol f & args]
|
||||
(vreset! vol (apply f (get vol :val) args)))
|
||||
|
||||
;; Future status predicates — pure reads of the future's :cached/:cancelled slots.
|
||||
;; future? stays native (deref/future-cancel/realized? call it); future-call and
|
||||
;; future-cancel stay native too (OS threads).
|
||||
(defn future-done? [x]
|
||||
(if (future? x) (boolean (get x :cached)) (throw "future-done? requires a future")))
|
||||
(defn future-cancelled? [x]
|
||||
(and (future? x) (boolean (get x :cancelled))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue