Open
Description
Tracking issue to implement RFC #0002 that will introduce execution contexts into Crystal.
Draft
- RFC 2: ExecutionContext #15302 (all schedulers implemented)
Related pull requests to prepare for the actual implementation:
- Add
Thread#internal_name=
#15298 - Explicit exit from main #15299
- Add
Thread::LinkedList#each
to safely iterate lists #15300 - Fix: Make
Crystal::EventLoop#remove(io)
a class method #15282 - Fix: GC safety in Thread#start #14558 —appears to be wrong (segfaults)
- Add
Crystal.print_buffered(io)
andCrystal.print_error_buffered
#15343 - Initialize
Fiber
with an explicit stack #15409
Actual pull requests that implement some of the RFC (to be extracted from #15302):
- Add fiber queues for execution context schedulers #15345
- RFC 2: Skeleton for ExecutionContext #15350
RFC 2 : Delay Fiber stack association #15404- RFC 2: Add
Fiber::ExecutionContext::SingleThreaded
scheduler #15511 - RFC 2: Add
Fiber::ExecutionContext::Isolated
#15513 - RFC 2: MT safe fiber context switch on AArch64 #15581
- RFC 2: MT safe fiber context switch on ARM #15582
- RFC 2: Add
Fiber::ExecutionContext::MultiThreaded
#15517 - RFC 2: Add
Fiber::ExecutionContext::Monitor
#15599
Related issues (e.g. impacted by MT, or MT paradigm shift):
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
In Progress