MeshImportWorker

Batch worker that loads mesh files off the calling thread.

In the namespace construct::asset. Declared in src/libs/libconstruct/construct/asset/MeshImportWorker.hpp.

Detailed description

Job type: "construct/mesh_import"

The worker reads the file, parses mesh data, checks for multi-material, and stores the result. ConstructShell handles SceneItem creation on the main thread upon completion.

Pooled since 2026-09-15 (batch-orchestration BO-04)

It was `SelfManaged` over its own `QtConcurrent::run`, and the conversion DELETES that call plus the queued hop back to the queue. The body was already one synchronous sequence of phases; all `QtConcurrent` did was get it off the dispatcher, which is the one service `Pooled` provides to every worker at once.

It qualifies under §BOC-5a: it spawns nothing of its own and runs a bounded set of phases. `kMaxConcurrent` still caps it at two imports, because `canAccept` is the worker's own gate and the pool would otherwise offer it a third.

Warning: `importFinished` is still emitted through a queued invocation. `ConstructShell` connects to it and builds SceneItems, which must happen on the main thread — the pool thread is not it, and returning an outcome does not change where a signal is received.

In this section