concengine.net

A concurrency engine for the open web.

STATUS

thread::main RUNNING

THREADS

2048

LATENCY

0.3ms

PROCESS QUEUE
SYNC BARRIER

LOCKED

UPTIME

99.97%

Thread Scheduling

Work Stealing

When a thread's local queue empties, it doesn't idle. It reaches into a neighbor's queue and steals work -- a controlled act of piracy that keeps every core saturated. The engine treats idle cycles as a moral failure. No thread rests while work exists anywhere in the system.

Preemptive Yields

Long-running tasks are sliced at microsecond boundaries. The scheduler doesn't ask permission; it takes control. Each yield point is a negotiation between throughput and fairness -- the engine favors neither, balancing both through adaptive time-slicing that learns from workload patterns.

Priority Inversion

When a low-priority thread holds a lock that a high-priority thread needs, the engine temporarily promotes the blocker. Priority inheritance isn't a workaround -- it's a principle. The system refuses to let scheduling decisions create deadlocks through neglect.

Affinity Binding

Threads develop relationships with CPU cores. Once a thread runs on a core, the scheduler remembers. Cache lines warm, branch predictors train, and the thread's next scheduling decision favors the same core. Affinity is memory. Memory is speed.

Synchronization Primitives

Mutex Contention

A mutex is a bottleneck disguised as a safety mechanism. Every lock acquisition is a bet that the critical section will be short. The engine monitors contention ratios in real-time, splitting hot mutexes into sharded locks when contention exceeds thresholds that would make lesser systems choke.

Lock-Free Queues

Compare-and-swap loops replace mutex acquisitions. The queue doesn't lock; it retries. Each failed CAS is information -- a signal that contention exists, that the topology should adapt. Lock-free doesn't mean conflict-free. It means conflicts are resolved through persistence, not exclusion.

Barrier Sync

Threads arrive at a barrier and wait. Not because they're slow, but because synchronization demands patience. The barrier is a meeting point -- all threads must be present before any can proceed. It's the engine's way of saying: no one moves until everyone is ready.

Atomic Operations

At the lowest level, the engine speaks in atomics. Loads and stores that complete in a single bus cycle, invisible to the rest of the system. Memory ordering constraints -- acquire, release, sequentially consistent -- form a grammar of guarantees that prevent the chaos of concurrent mutation.

Memory Model

Cache Coherence

Every core maintains its own view of memory. When one core writes, the others must learn. The MESI protocol -- Modified, Exclusive, Shared, Invalid -- orchestrates a constant conversation between caches. The engine doesn't fight this conversation; it shapes it, aligning data structures along cache line boundaries to minimize cross-core chatter.

False Sharing

Two variables on the same cache line, written by different cores. Each write invalidates the other's cache, creating a ping-pong of coherence messages that destroys performance. The engine pads structures to cache line boundaries -- 64 bytes of intentional waste that prevents accidental coupling between independent threads.

Memory Fences

The CPU reorders instructions for speed. The programmer assumes sequential execution. Memory fences bridge this gap -- compiler and hardware barriers that say: everything before this point is visible before anything after. Fences are expensive. The engine uses them surgically, only where correctness demands order.

concengine.net

All threads converge. The engine rests.