Linked by Elad Lahav on Thu 18th Feb 2016 19:27 UTC
QNX

A mutex is a common type of lock used to serialize concurrent access by multiple threads to shared resources. While support for POSIX mutexes in the QNX Neutrino Realtime OS dates back to the early days of the system, this area of the code has seen considerable changes in the last couple of years.

Thread beginning with comment 624991
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Cool article!
by elahav on Thu 18th Feb 2016 23:57 UTC in reply to "Cool article!"
elahav
Member since:
2009-05-28

For the most part, the pthread API is implemented as a thin layer on top of the native thread API, e.g., pthread_create() does very little other than invoking the ThreadCreate() kernel call.

Reply Parent Score: 2

RE[2]: Cool article!
by tylerdurden on Fri 19th Feb 2016 00:08 in reply to "RE: Cool article!"
tylerdurden Member since:
2009-03-17

Thanks for the reply.

Follow up, is the native thread API exposed to the user? (as I said, I programmed for QNX a looong time ago, back when still used Codewarrior)

Also, are there any plans to support QNX on low end ARM systems like Raspberry Pi?

Reply Parent Score: 2

RE[3]: Cool article!
by elahav on Fri 19th Feb 2016 01:17 in reply to "RE[2]: Cool article!"
elahav Member since:
2009-05-28

Yes, the kernel calls are exposed and documented, and you can use them directly. For most pthread functions, however, there is little reason to do that (and, in fact, for mutexes, you will get sub-optimal results from going directly to the kernel calls, as explained in the article).

For low-end systems, you should be able to run QNX on any ARMv7 or x86 system with an MMU, so Pi2 is feasible, but not the older Pi (ARMv6 processor) or Cortex-M-based systems (no MMU).

Reply Parent Score: 3