1*3f982cf4SFabien Sanglard# Threading 2*3f982cf4SFabien Sanglard 3*3f982cf4SFabien SanglardThe Open Screen Library is **single-threaded**; all of its code is intended to be 4*3f982cf4SFabien Sanglardrun on a single sequence, with a few exceptions noted below. 5*3f982cf4SFabien Sanglard 6*3f982cf4SFabien SanglardA library client **must** invoke all library APIs on the same sequence that is 7*3f982cf4SFabien Sanglardused to run tasks on the client's 8*3f982cf4SFabien Sanglard[TaskRunner implementation](https://chromium.googlesource.com/openscreen/+/refs/heads/master/platform/api/task_runner.h). 9*3f982cf4SFabien Sanglard 10*3f982cf4SFabien Sanglard## Exceptions 11*3f982cf4SFabien Sanglard 12*3f982cf4SFabien Sanglard* The [trace logging](trace_logging.md) framework is thread-safe. 13*3f982cf4SFabien Sanglard* The TaskRunner itself is thread-safe. 14*3f982cf4SFabien Sanglard* The [POSIX platform implementation](https://chromium.googlesource.com/openscreen/+/refs/heads/master/platform/impl/) 15*3f982cf4SFabien Sanglard starts a network thread, and handles interactions between that thread and the 16*3f982cf4SFabien Sanglard TaskRunner internally. 17*3f982cf4SFabien Sanglard 18*3f982cf4SFabien Sanglard 19*3f982cf4SFabien Sanglard 20*3f982cf4SFabien Sanglard 21*3f982cf4SFabien Sanglard 22