xref: /aosp_15_r20/external/openscreen/docs/threading.md (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
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