Class CancelPointInstr
java.lang.Object
org.ek9lang.compiler.ir.instructions.IRInstr
org.ek9lang.compiler.ir.instructions.CancelPointInstr
- All Implemented Interfaces:
INode
CANCEL_POINT: a point where an async task the pipeline no longer needs stops (EK9_BACKEND_IR_CONTRACTS.md
Contract 24). When the running task's cancellation has been requested and not yet delivered, it is delivered: the
task unwinds as org.ek9.lang::Cancelled, which no catch of an EK9 Exception catches and every
finally sees. Anywhere else - off an async task, or once delivered - it does nothing.
Placed only by IR_OPTIMISATION (CancelPointPlacement) in an operation the runtime may call - the complement
of SafePointInstr - so a task running EK9 code that never reaches a runtime wait still stops within one loop
iteration or one call. No result, no operands, no debug information (it is no source line).
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class IRInstr
accept, addOperand, addOperands, equals, getDebugInfo, getEscapeMetaData, getOpcode, getOperands, getResult, hasEscapeMetaData, hashCode, hasResult, isControlFlow, isLabel, isMemoryManagement, isMethodCall, setEscapeMetaData, toString
-
Constructor Details
-
CancelPointInstr
public CancelPointInstr()
-