Fork me on GitHub
#core-async
<
2018-03-18
>
kennethkalmer11:03:15

I’ve got a strange issue with core.async where using timeout deep inside an async process causes core.async to lock up completely. I’ve posted a more in depth question & sample code over the https://clojureverse.org/t/core-async-locks-up-when-using-timeout-deep-inside-async-processes/1780 and would love to understand what on earth is going wrong

benzap12:03:50

@kennethkalmer I'm not that familiar with transducers, but it's sortof like a more powerful reducer? On line 23, is this result being passed back into process-n?

benzap12:03:36

if that's the case, your async/timeout is receiving an ever increasing n value,

benzap12:03:06

which might make it look like it's locking up, because the timeout hits >1s after only 10 iterations, not sure if this is the case

kennethkalmer13:03:43

the values will always be < 10, so the timeout will be up to 1s max

kennethkalmer13:03:42

calling (process-n 10) by itself will take 1s, but when (process-n 10) is called inside (async/pipeline) it just blocks, but with (async/pipeline-blocking) it seems to work

kennethkalmer13:03:24

however, that means my example no longer matches the issue I’m experiencing in my code facepalm