Changeset 7c58036 in rtems-docs
- Timestamp:
- 09/07/18 13:47:43 (6 years ago)
- Branches:
- 5, master
- Children:
- 11040cf
- Parents:
- d90c813
- git-author:
- Sebastian Huber <sebastian.huber@…> (09/07/18 13:47:43)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (09/10/18 05:09:46)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
c-user/symmetric_multiprocessing_services.rst
rd90c813 r7c58036 810 810 This API is not intended for general application use. Please ask on the 811 811 development mailing list in case you want to use it. 812 813 Thread Pinning 814 -------------- 815 816 Thread pinning ensures that a thread is only dispatched to the processor on 817 which it is pinned. It may be used to access per-processor data structures in 818 critical sections with enabled thread dispatching, e.g. a pinned thread is 819 allowed to block. The `_Thread_Pin()` operation will pin the executing thread 820 to its current processor. A thread may be pinned recursively, the last unpin 821 request via `_Thread_Unpin()` revokes the pinning. 822 823 Thread pinning should be used only for short critical sections and not all 824 the time. Thread pinning is a very low overhead operation in case the 825 thread is not preempted during the pinning. A preemption will result in 826 scheduler operations to ensure that the thread executes only on its pinned 827 processor. Thread pinning must be used with care, since it prevents help 828 through the locking protocols. This makes the :ref:`OMIP <OMIP>` and 829 :ref:`MrsP <MrsP>` locking protocols ineffective if pinned threads are 830 involved. 831 832 The thread pinning is not intended for general application use. Please ask on 833 the development mailing list in case you want to use it.
Note: See TracChangeset
for help on using the changeset viewer.