| # Threading | |
| The Open Screen Library is **single-threaded**; all of its code is intended to be | |
| run on a single sequence, with a few exceptions noted below. | |
| A library client **must** invoke all library APIs on the same sequence that is | |
| used to run tasks on the client's | |
| [TaskRunner implementation](https://chromium.googlesource.com/openscreen/+/refs/heads/master/platform/api/task_runner.h). | |
| ## Exceptions | |
| * The [trace logging](trace_logging.md) framework is thread-safe. | |
| * The TaskRunner itself is thread-safe. | |
| * The [POSIX platform implementation](https://chromium.googlesource.com/openscreen/+/refs/heads/master/platform/impl/) | |
| starts a network thread, and handles interactions between that thread and the | |
| TaskRunner internally. | |