Skip to content

Instantly share code, notes, and snippets.

@semperos
Created January 13, 2016 15:50
Show Gist options
  • Select an option

  • Save semperos/0c6b1445cbb60c770350 to your computer and use it in GitHub Desktop.

Select an option

Save semperos/0c6b1445cbb60c770350 to your computer and use it in GitHub Desktop.
Simple core.async go block
(let [c__18718__auto__ (a/chan 1)
captured-bindings__18719__auto__ (clojure.lang.Var/getThreadBindingFrame)]
(clojure.core.async.impl.dispatch/run
(fn []
(let [f__18720__auto__ (fn state-machine__18533__auto__
([]
(clojure.core.async.impl.ioc-macros/aset-all!
(java.util.concurrent.atomic.AtomicReferenceArray.
7)
0
state-machine__18533__auto__
1
1))
([state_32142]
(let
[old-frame__18534__auto__
(clojure.lang.Var/getThreadBindingFrame)
ret-value__18535__auto__
(try
(clojure.lang.Var/resetThreadBindingFrame
(clojure.core.async.impl.ioc-macros/aget-object
state_32142
3))
(loop
[]
(let
[result__18536__auto__
(case
(int
(clojure.core.async.impl.ioc-macros/aget-object
state_32142
1))
1
(let
[inst_32140 (do "foo")]
(clojure.core.async.impl.ioc-macros/return-chan
state_32142
inst_32140)))]
(if
(identical?
result__18536__auto__
:recur)
(recur)
result__18536__auto__)))
(catch
java.lang.Throwable
ex__18537__auto__
(clojure.core.async.impl.ioc-macros/aset-all!
state_32142
clojure.core.async.impl.ioc-macros/CURRENT-EXCEPTION
ex__18537__auto__)
(clojure.core.async.impl.ioc-macros/process-exception
state_32142)
:recur)
(finally
(clojure.lang.Var/resetThreadBindingFrame
old-frame__18534__auto__)))]
(if
(identical?
ret-value__18535__auto__
:recur)
(recur state_32142)
ret-value__18535__auto__))))
state__18721__auto__ (->
(f__18720__auto__)
(clojure.core.async.impl.ioc-macros/aset-all!
clojure.core.async.impl.ioc-macros/USER-START-IDX
c__18718__auto__
clojure.core.async.impl.ioc-macros/BINDINGS-IDX
captured-bindings__18719__auto__))]
(clojure.core.async.impl.ioc-macros/run-state-machine-wrapped
state__18721__auto__))))
c__18718__auto__)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment