Commits on Apr 14, 2013
  1. notes

    stuartsierra committed Apr 14, 2013
Commits on Mar 19, 2013
  1. Fix whitespace errors

    stuartsierra committed Mar 19, 2013
  2. Make error variable a volatile-mutable

    stuartsierra committed Mar 19, 2013
    Explanation in comments
Commits on Dec 6, 2012
  1. Rename follow/follow-fail to then-call/recover-call

    stuartsierra committed Dec 6, 2012
    The name 'follow' was ambiguous, and these functions really are just
    the function-based implementations for then/recover, not important
    enough to deserve their own names. The relationship is the same as
    that betweeen 'future-call' and 'future'.
  2. fixup :require/refer in user ns for safer loading

    stuartsierra committed Dec 6, 2012
    :refer-clojure doesn't prevent symbol clashes in `lein test`
Commits on Dec 1, 2012
  1. [WIP] Add future-seq back as a reified reducible

    stuartsierra committed Dec 1, 2012
    It doesn't make sense to have every promise implement Reducible,
    because it won't make sense for a lot of them. Since you can deliver
    one promise to another, it's possible for an ordinay promise to
    "become" a future sequence.
Commits on Nov 30, 2012
  1. Add 'failed?'; propagate CancellationException

    stuartsierra committed Nov 30, 2012
    When a future is cancelled with future-cancel, its associated promise
    also needs to be failed with a CancellationException.
  2. Remove 'on' macro, add 'follow-fail' and 'recover'

    stuartsierra committed Nov 30, 2012
    The 'on' macro isn't as useful as 'then', and it's confusing to have
    Also considered the name 'rescue' for 'recover'.
Commits on Nov 26, 2012
  1. Future's impl of deref uses the promise

    stuartsierra committed Nov 26, 2012
    As pointed out by tomoj, in this mailing list post:
    Before this patch, promises and futures behaved slightly differently
    with regard to merging promises:
    (let [p (promise)] @(future (on [v p] v)))
    ;;=> #<Promise@6d232cf2: :pending>
    I changed the implementation of future-call so that `deref` uses the
    promise object, not the Future. I think this is more consistent.
    Now this work:
    (let [p (promise)] @(future (on [v p] v)))
    ;; never returns, because p has not been realized
    (let [p (promise)] (deliver p 10) @(future (on [v p] v)))
    ;;=> 10
    Calling the 'get' method of java.util.concurrent.Future still gets the
    value from the Future.
Commits on Nov 25, 2012
  1. Fix syntax/ordering bugs

    stuartsierra committed Nov 25, 2012
Commits on Nov 24, 2012
Commits on Nov 23, 2012
  1. Add dynamic *executor* var

    stuartsierra committed Nov 23, 2012
    Permits flexible global or local setting of the executor to be used
    for callbacks.
  2. Revert "[WIP] on-via, follow"

    stuartsierra committed Nov 23, 2012
    This reverts commit 5bb2db7.
  3. [WIP] on-via, follow

    stuartsierra committed Nov 23, 2012
    Not sure if this is really what we want. Need to figure out the actual
    scenarios when you need to set the executor.
Commits on Nov 18, 2012
Commits on Sep 24, 2012
  1. Syntax & formatting

    stuartsierra committed Sep 24, 2012