Threading contract

The Python binding follows the SDK threading contract: the engine does not spawn OS threads, and each public method runs on the OS thread that invoked it.

The engine handle’s capability depends on the sync policy selected by the builder:

  • full_sync() allows concurrent calls on the same engine handle and also supports sequential calls from different OS threads.

  • no_sync() keeps all calls on the OS thread that created the engine.

  • account_sync() allows concurrent calls on the same handle when the caller pins each account to one processing chain (calls for the same account are never concurrent). Sequential cross-thread invocation is always safe.