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 * ro...@icir.org * www.icir.org/robin _______________________________________________ bro-dev mailing list bro-dev@bro.org http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev