On Wed, May 10, 2017 at 10:24 AM, Steven Watanabe via Boost-build <boost-build@lists.boost.org> wrote:
AMDG

On 05/10/2017 09:17 AM, Stefan Seefeld via Boost-build wrote:
>
> browsing the bjam sources I ran into
>
>                 /* Call the callback, may call back to jam rule land. */
>                 (*cmdtab[ i ].func)( cmdtab[ i ].closure, rstat, &time_info,
>                     cmdtab[ i ].buffer[ OUT ], cmdtab[ i ].buffer[ ERR ],
>                     cmdtab[ i ].exit_reason );
>
> (https://github.com/boostorg/build/blob/develop/src/engine/execunix.c#L558-L561)
>
> which suggests it's possible to have a callback call into the b2 layer
> (i.e., running some post-processing rule coded in Jam). Is that possible
> ? The only callback implementation I could find was the `make1c_closure`
> which is used to collect status information, but which isn't passed
> directly on into Jam, and thus can only be processed synchronously once
> the call to `builtin_update_now` has completed.
>
> Am I missing anything ?
>

http://www.boost.org/build/doc/html/jam/language.html#jam.language.variables.builtins.actionrule

It's called in make1c_closure here:
https://github.com/boostorg/build/blob/develop/src/engine/make1.c#L854

Of which nothing is async in the above. And further info.. The timing_rule is used in testing.jam <https://github.com/boostorg/build/blob/develop/src/tools/testing.jam#L800>.

--
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail