Class StartsAndStopsRuntimeThreads

java.lang.Object
org.ek9lang.compiler.phase9.StartsAndStopsRuntimeThreads
All Implemented Interfaces:
Predicate<IRInstr>

public final class StartsAndStopsRuntimeThreads extends Object implements Predicate<IRInstr>
THE calls that start runtime threads and finish only once every one of them has stopped (EK9_NATIVE_CYCLE_COLLECTOR_DESIGN.md ยง13.11, T10): a server's accept, acceptUntilComplete, serve and serveUntilComplete return after shutting down the scheduler they started, and an async pipeline's Ek9Async.create() begins the statement whose close() drains its workers and does the same. When the scope holding such a call ends, the work of every thread it started is done, so AfterThreadsSafePoints puts a SAFE_POINT after_threads there. Signals.register is not one: its dispatcher never stops. The front end's IsThreadSpawningCall asks a different question - which calls run a handler on another thread - for E08251. Stateless: hold one.
  • Constructor Details

    • StartsAndStopsRuntimeThreads

      public StartsAndStopsRuntimeThreads()
  • Method Details