Next: Multiple provides, Previous: External multiple out events, Up: Execution Semantics [Contents][Index]
The two requires out-events (r1.b
, r2.b
) can come in any
order. The message sequence chart shows only one scenario. The
implementation of the component is such that the provided behavior is
the same in both cases.
interface I { in void a (); out void b (); behavior { on a: b; } } component indirect_blocking_multiple_external_out { provides blocking I p; requires external I r1; requires external I r2; behavior { bool ready = true; on p.a (): blocking {ready = false; r1.a (); r2.a ();} [!ready] on r1.b (), r2.b (): {ready = true; p.b ();} [ready] on r1.b (), r2.b (): p.reply (); } }