| # 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. |
| |
| |
| |
| |
| |