Changeset 3a594a9 in rtems-docs


Ignore:
Timestamp:
Jan 5, 2018, 10:05:55 AM (19 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
1472f84
Parents:
ba64982
git-author:
Sebastian Huber <sebastian.huber@…> (01/05/18 10:05:55)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/05/18 10:06:58)
Message:

c-user: Clarify user extensions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c-user/user_extensions.rst

    rba64982 r3a594a9  
    226226started thread has been made ready.  So, in SMP configurations, the thread may
    227227already run on another processor before the thread start extension is actually
    228 invoked.
     228invoked.  Thread switch and thread begin extensions may run before or in
     229parallel with the thread start extension in SMP configurations.
    229230
    230231The thread start extension is invoked in forward order with thread dispatching
     
    255256dispatching enabled (except during system initialization).  The thread life is
    256257protected.  Thread restart and delete requests issued by thread restart
    257 extensions lead to recursion.
     258extensions lead to recursion.  The POSIX cleanup handlers, POSIX key
     259destructors and thread-local object destructors run in this context.
    258260
    259261.. index:: rtems_task_switch_extension
     
    278280The thread switch extension is invoked in forward order with thread dispatching
    279281disabled.  In SMP configurations, interrupts are disabled and the per-processor
    280 SMP lock is owned.
     282SMP lock is owned.  Thread switch extensions may run in parallel on multiple
     283processors.  It is recommended to use thread-local or per-processor data
     284structures in SMP configurations for thread switch extensions.  A global SMP
     285lock should be avoided for performance reasons.
    281286
    282287The context switches initiated through the multitasking start are not covered
     
    299304The :c:data:`executing` is a pointer to the TCB of the currently executing
    300305thread.  The thread begin extension executes in a normal thread context and may
    301 allocate resources for the thread.  In particular it has access to thread-local
    302 storage of the thread.
     306allocate resources for the executing thread.  In particular, it has access to
     307thread-local storage of the executing thread.
    303308
    304309The thread begin extension is invoked in forward order with thread dispatching
    305310enabled.  The thread switch extension may be called multiple times for this
    306 thread before the thread begin extension is invoked.
     311thread before or during the thread begin extension is invoked.
    307312
    308313.. index:: rtems_task_exitted_extension
     
    345350thread.
    346351
    347 It is invoked in the context of the terminated thread right before the
    348 thread dispatch to the heir thread.  The POSIX cleanup and key destructors
    349 execute in this context.  The thread termination extension has access to
    350 thread-local storage and thread-specific data of POSIX keys.
     352It is invoked in the context of the terminated thread right before the thread
     353dispatch to the heir thread.  The POSIX cleanup handlers, POSIX key destructors
     354and thread-local object destructors run in this context.  Depending on the
     355order, the thread termination extension has access to thread-local storage and
     356thread-specific data of POSIX keys.
    351357
    352358The thread terminate extension is invoked in reverse order with thread
Note: See TracChangeset for help on using the changeset viewer.