Concurrency
Default Buraaq is single-threaded and honest. You get threads when you ask, not an implicit runtime.
Threads
Spawn a function. Join it. Share only what GFA can prove, or unsafe with a lock you actually hold.
Channels
Channel send/recv and Mutex call the C runtime. spawn is an OS thread you join. Cancel is next.
Prefer one thread owning the device or socket when you do not need a channel. Keel's accept loop is already a process, not a thread farm.
Why this stays fast
No green-thread scheduler on the hot path. No stop-the-world. A firmware loop is a loop. A Keel API is a native process serving TLS. If you need work stealing, you build it: the compiler will not hide a runtime under async by default.
Async/await exists as opt-in syntax for I/O-shaped code. It is not required to ship a service.
Next: performance: Gate B versus C++ -O2.
