[Bro-Dev] 'async' keyword

Robin Sommer robin at icir.org
Tue Sep 19 09:39:41 PDT 2017


At BroCon a few folks asked me about the proposed "async" keyword for
Bro's scripting language. "async" is coroutine-style language
construct that puts blocking operations on hold until they conclude,
working on other stuff first. It could replace most uses of "when" and
is arguably much nicer to use.

"async" is implemented as a proof-of-concept in the topic/robin/async
branch. Note that that Bro branch is not fully functional at the
moment, nor are performance implications clear. However, before going
any further with it I'd like to reach consensus if the current
implementation is acceptable for the Bro code base, as it's very
low-level and not easy to follow. I'd be interested in opinions here.

The commit to look at is:
https://github.com/bro/bro/commit/8653b333431648e5a33d61c3f61c6d093cff5b72

The exercise here is: Can you understand how "async" works? (If you 
can honestly answer "yes" in under 15 minutes, I buy you a beer. ;-)

Robin

PS: See the TODOs in that commit for the current state of the code.)

-- 
Robin Sommer * ICSI/LBNL * robin at icir.org * www.icir.org/robin


More information about the bro-dev mailing list