le_thread.h
66 * le_thread_Cancel() or <c>pthread_cancel()</c>), it will be blocked and remain in a pending state67 * until cancellation is unblocked (also using pthread_setcancelstate()), at which time the thread104 * lack of synchronization. If threads share data, they @b MUST be synchronized with each other to107 * @warning This documentation assumes that the reader is familiar with multi-thread synchronization148 * dies, then that thread must call le_thread_CleanupLegatoThreadData() before it exits. Otherwise171 //--------------------------------------------------------------------------------------------------177 //--------------------------------------------------------------------------------------------------181 //--------------------------------------------------------------------------------------------------186 * They are privileged levels and will therefore not be allowed unless the application is executed193 //--------------------------------------------------------------------------------------------------245 //--------------------------------------------------------------------------------------------------251 //--------------------------------------------------------------------------------------------------255 //--------------------------------------------------------------------------------------------------264 //--------------------------------------------------------------------------------------------------272 //--------------------------------------------------------------------------------------------------283 //--------------------------------------------------------------------------------------------------292 //--------------------------------------------------------------------------------------------------296 //--------------------------------------------------------------------------------------------------299 //--------------------------------------------------------------------------------------------------310 //--------------------------------------------------------------------------------------------------323 //--------------------------------------------------------------------------------------------------331 //--------------------------------------------------------------------------------------------------339 //--------------------------------------------------------------------------------------------------356 //--------------------------------------------------------------------------------------------------365 //--------------------------------------------------------------------------------------------------372 //--------------------------------------------------------------------------------------------------379 //--------------------------------------------------------------------------------------------------391 //--------------------------------------------------------------------------------------------------396 //--------------------------------------------------------------------------------------------------400 * Setting the stack explicitly allows the caller to control the memory allocation of the thread's404 * The macro LE_THREAD_DEFINE_STATIC_STACK() may be used to create a statically allocated stack for407 * @attention In general, this function is only useful on embedded, RTOS based systems in order to416 //--------------------------------------------------------------------------------------------------427 //--------------------------------------------------------------------------------------------------433 //--------------------------------------------------------------------------------------------------440 //--------------------------------------------------------------------------------------------------445 //--------------------------------------------------------------------------------------------------452 //--------------------------------------------------------------------------------------------------474 //--------------------------------------------------------------------------------------------------484 //--------------------------------------------------------------------------------------------------488 //--------------------------------------------------------------------------------------------------497 //--------------------------------------------------------------------------------------------------509 //--------------------------------------------------------------------------------------------------516 //--------------------------------------------------------------------------------------------------522 //--------------------------------------------------------------------------------------------------529 //--------------------------------------------------------------------------------------------------533 //--------------------------------------------------------------------------------------------------542 //--------------------------------------------------------------------------------------------------546 //--------------------------------------------------------------------------------------------------553 //--------------------------------------------------------------------------------------------------560 //--------------------------------------------------------------------------------------------------568 //--------------------------------------------------------------------------------------------------572 //--------------------------------------------------------------------------------------------------576 //--------------------------------------------------------------------------------------------------587 //--------------------------------------------------------------------------------------------------595 //--------------------------------------------------------------------------------------------------604 * avoid a race condition that can cause resource leakage when a parent thread passes dynamically609 * For example, a thread @e T1 could allocate an object from a memory pool, create a thread @e T2,614 * released. So, we allow @e T1 to register a destructor function for @e T2 before starting @e T2.618 //--------------------------------------------------------------------------------------------------627 //--------------------------------------------------------------------------------------------------631 //--------------------------------------------------------------------------------------------------637 //--------------------------------------------------------------------------------------------------641 //--------------------------------------------------------------------------------------------------647 //--------------------------------------------------------------------------------------------------651 //--------------------------------------------------------------------------------------------------658 //--------------------------------------------------------------------------------------------------669 //--------------------------------------------------------------------------------------------------676 //--------------------------------------------------------------------------------------------------680 //--------------------------------------------------------------------------------------------------683 //--------------------------------------------------------------------------------------------------694 //--------------------------------------------------------------------------------------------------705 //--------------------------------------------------------------------------------------------------707 * Clean-up the thread-specific data that was initialized using le_thread_InitLegatoThreadData().714 //--------------------------------------------------------------------------------------------------Definition: le_cdata.h:57