cc.otavia.core.system
Members list
Packages
Type members
Classlikes
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ActorHouse.type
ActorSystem is a container of actor and channel group instance, a actor or channel group instance must be create by a actor system instance, actor instance in different actor system instance can not send message directly.
ActorSystem is a container of actor and channel group instance, a actor or channel group instance must be create by a actor system instance, actor instance in different actor system instance can not send message directly.
only Notice message can send to a actor or channel group out side actor and channel group
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ActorSystem.type
The central execution unit of the Otavia runtime. Each ActorThread is simultaneously the IO thread (polling the OS selector for network/file events) and the actor execution thread (running user business logic).
The central execution unit of the Otavia runtime. Each ActorThread is simultaneously the IO thread (polling the OS selector for network/file events) and the actor execution thread (running user business logic).
Every actor is pinned to a single ActorThread for its entire lifetime. All actor on the same thread are single-threaded with respect to each other, eliminating the need for locks on intra-thread coordination.
The event loop has three phases per iteration:
- '''Phase 1 — IO''': Poll the selector and process IO events
- '''Phase 2 — ChannelsActor dispatch''': Fully drain IO-capable actor and pending events (no time budget)
- '''Phase 3 — StateActor dispatch''': Run business logic actor within a time budget
Attributes
- Companion
- object
- Supertypes
-
class Threadtrait Runnableclass Objecttrait Matchableclass Any
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ActorThread.type
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ActorThreadFactory.type
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class DefaultActorThreadPool
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ActorThreadPool.type
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Supertypes
Attributes
- Supertypes
Per-ActorThread scheduler that manages three priority queues for actor house scheduling.
Per-ActorThread scheduler that manages three priority queues for actor house scheduling.
Queue assignment is based on actor type:
- '''mountingQueue''' (FIFO): houses awaiting initial mount (all types)
- '''channelsActorQueue''' (Priority): IO-capable actor, fully drained in Phase 2 with no time budget
- '''actorQueue''' (Priority): business logic actor, time-budgeted in Phase 3
Each PriorityHouseQueue has two sub-queues: normal priority and high priority. Houses are classified as high priority based on three signals (see ActorHouse._highPriority): reply backlog, event backlog, and no downstream blocking (no pending promises). Priority is determined at enqueue time; there is no mid-queue promotion.
Value parameters
- thread
-
the owning ActorThread
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class FIFOHouseQueueclass PriorityHouseQueue
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
A priority-aware MPSC house queue with two sub-queues: high-priority and normal-priority.
A priority-aware MPSC house queue with two sub-queues: high-priority and normal-priority.
'''Dequeue order:''' high-priority sub-queue is always drained before the normal sub-queue (strict priority). This guarantees that actors that can immediately push the system forward (reply/event backlogs, or no downstream blocking — see ActorHouse._highPriority) are always served before normal actors.
'''Priority is determined at enqueue time.''' The ActorHouse._highPriority cached flag is read once when the house enters the queue (via ActorHouse.waitingToReady → HouseManager.ready → enqueue). A house that becomes high-priority while already queued will be correctly prioritized on its next enqueue (after ActorHouse.completeRunning re-evaluates the flag).
'''Concurrency model:''' SpinLock-based MPSC. Multiple producer threads can enqueue concurrently; the owning ActorThread dequeues via dequeue. Other threads may attempt opportunistic steals via stealDequeue, which uses SpinLock.tryLock to avoid spinning on the owner's lock. Each sub-queue has independent read/write lock pairs to avoid cross-priority contention.
'''Schedule() outside lock:''' the READY → SCHEDULED CAS in ActorHouse.schedule is performed after releasing the queue lock. This is safe because no other thread can change the house state between unlock and schedule: the house is in READY state, removed from the queue, and no lifecycle transition is possible until schedule() fires.
Attributes
- Supertypes
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
SystemInfo.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class TilingThreadSelector
Attributes
- Supertypes