Fork me on GitHub
#core-async
<
2022-06-16
>
uwo15:06:46

Okay, I'm back! My question is just, have I designed any obviously bad races this time? I used @hiredman 's suggestion to create a buffering loop that copies from in to out. I didn't end up using a juc LinkedBlockingQueue, as I needed to surface more information than just buffer size -- I'm wondering if I'm missing some semantics that the LinkedBlockingQueue would have provided in hiredman's example. Additionally, I originally wrote this by closing over the state in the loop construction function, but I need to provide (reads from) queue-state to another page, so I def'd that state as an atom; my hope is that I have not written any race conditions there, since I only ever update that state in a single go-loop.

souenzzo23:06:32

Is java.util.logging.Logger#log a blocking operation? There is guidelines/recommendations about core.async and logging? https://docs.oracle.com/en/java/javase/18/docs/api/java.logging/java/util/logging/Logger.html#log(java.util.logging.Level,java.lang.String)

Jan K14:06:47

I think whether it's blocking or not depends on the Logger implementation and config that you use. In most cases I don't think you need to worry about it.