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
AssetIdin 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.