Variable mir::linearising_executor

Variable Documentation

NonBlockingExecutor &mir::linearising_executor

An Executor that makes the following concurrency guarantees:

  1. If linearising_executor.spawn(A) happens-before linearising_executor.spawn(B) then A() happens-before B(). That is, the entire execution of A is completed before B is started.

  2. No work is performed concurrently. For any two calls linearising_executor.spawn(A) linearising_executor.spawn(B) either A() happens-before B() or B() happens-before A().

  3. Work is deferred; linearising_executor.spawn(A) will not block on the execution of A