Skip to main content

Module thread

Module thread 

Source
Expand description

The thread-scoped services the rest of the engine builds on, kept out of the vocabulary and compute layer below them (concinnity-core) so that layer needs no operating system.

Two of them, sharing nothing but a need for real threads:

  • jobs: the process-wide worker pool a single system fans its own data-parallel work across (pose sampling, particle update, the environment-map convolutions).
  • asset_id: the build-time name -> dense id interner, whose table is per-thread so two concurrent builds cannot see each other’s ids.

It knows where nothing lives: it names no path and opens no file. The identity types the interner hands back are concinnity-core’s, and the resolver seam it installs is concinnity_core::ecs::resolver’s.

Modules§

asset_id
Build-time name -> dense id interner. Asset names declared in world.jsonl are interned to an AssetId in declaration order; the blob and the runtime carry only the integer, so every cross-reference lookup is an integer compare.
jobs
Backend-agnostic job pool for parallelising expensive per-frame CPU work.