The QNX Neutrino RTOS provides the POSIX-standard thread-level synchronization primitives, some of which are useful even between threads in different processes.
The synchronization services include at least the following:
Synchronization service | Supported between processes | Supported across a QNX Neutrino LAN |
---|---|---|
Mutexes | Yesa | No |
Condvars | Yes | No |
Barriers | Yesa | No |
Sleepon locks | No | No |
Reader/writer locks | Yesa | No |
Semaphores | Yes | Yes (named only) |
FIFO scheduling | Yes | No |
Send/Receive/Reply | Yes | Yes |
Atomic operations | Yes | No |
a Sharing this type of object between processes can be a security problem; see Safely sharing mutexes, barriers, and reader/writer locks between processes, later in this chapter.
The above synchronization primitives are implemented directly by the kernel, except for: