summaryrefslogtreecommitdiff
path: root/cpukit/posix/src/pthreadcreate.c (follow)
AgeCommit message (Collapse)Author
2020-04-28doxygen: Switch @brief and @ingroupSebastian Huber
This order change fixes the Latex documentation build via Doxygen.
2020-04-16Canonicalize config.h includeSebastian Huber
Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
2020-02-12score: Move thread stack allocationSebastian Huber
Move thread stack allocation to caller side of _Thread_Initialize(). Update #3835.
2020-02-12score: Add Thread_ConfigurationSebastian Huber
Add the Thread_Configuration structure to reduce the parameter count of _Thread_Initialize(). This makes it easier to add more parameters in the future. It simplifies the code generation since most architectures do not have that many registers available for function parameters. Update #3835.
2020-02-12score: Simplify FP context allocationSebastian Huber
Use the stack area to allocate the FP context. This considerably simplifies the application configuration since the task count no longer influences the configured work space size. With this change the stack space size is overestimated since an FP context for each thread is accounted. Memory constraint applications can use the stack size for fine tuning. Update #3835.
2019-09-24Correct initial POSIX signals maskJoel Sherrill
+ Modify POSIX thread create extension to ensure expected initial signal mask is provided to system threads, initial tasks and threads, and inheritied by tasks and threads. + Adds psxsignal07 to verify functionality when using a POSIX Initialization thread and POSIX threads. + Adds psxsignal08 to verify functionality when using a Classic API Initialization task and Classic API tasks. Closes #3794.
2019-03-25pthreadcreate.c: Silence unused variable warning (CID 1399716)Joel Sherrill
2018-12-14score: Static Objects_Information initializationSebastian Huber
Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
2018-10-29posix: Provide threads by defaultSebastian Huber
Update #2514.
2017-11-09posix: Change created_with_explicit_schedulerSebastian Huber
Remove POSIX_API_Control::created_with_explicit_scheduler. Add Thread_Control::was_created_with_inherited_scheduler. This fixes also pthread_getattr_np() for Classic tasks. Update #2514.
2017-11-09posix: Remove POSIX_API_Control::schedpolicySebastian Huber
Use the thread CPU budget algorithm to determine the scheduler policy. This fixes also pthread_getschedparam() for Classic tasks. Update #2514.
2017-10-28posix: Fix pthread_create() with user stackSebastian Huber
In case the user provides a stack with address and size, then do not alter the stack size. Close #3211.
2017-10-17posix: Simplify _POSIX_Threads_Create_extension()Sebastian Huber
Move unblocked signals initialization to pthread_create(). Update #2514.
2017-10-17posix: Remove POSIX_API_Control::schedparamSebastian Huber
Move sporadic server scheduler parameters to POSIX_API_Control::Sporadic. Remove redundant scheduler priority parameter. Update #2514.
2017-10-17posix: Fix _POSIX_Threads_Create_extension()Sebastian Huber
The thread POSIX API control must be fully initialized in _POSIX_Threads_Create_extension(), otherwise a pthread_setschedparam() is broken for all threads not created with pthread_create().
2017-10-11posix: Validate affinity sets by the schedulerSebastian Huber
Update #2514.
2017-10-10posix: Unconditional thread attribute supportSebastian Huber
Update #2514.
2017-10-09posix: Simplify POSIX_API_ControlSebastian Huber
Return stack area via pthread_getattr_np(). Simplify * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() and let the scheduler do the more sophisticated error checks. Make * pthread_setaffinity_np(), * pthread_getaffinity_np(), * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() available in all configurations. Update #2514. Close #3145. Close #3168.
2017-01-11Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill
2016-11-02score: Introduce Thread_Scheduler_control::homeSebastian Huber
Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
2016-09-21score: Rework thread priority managementSebastian Huber
Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
2016-06-24posix: Fix pthread_create()Sebastian Huber
Do not access data of the executing thread without proper locks.
2016-06-22score: Introduce map priority scheduler operationSebastian Huber
Introduce map/unmap priority scheduler operations to map thread priority values from/to the user domain to/from the scheduler domain. Use the map priority operation to validate the thread priority. The EDF schedulers use this new operation to distinguish between normal priorities and priorities obtain through a job release. Update #2173. Update #2556.
2016-06-22posix: Generalize _POSIX_Priority_To_core()Sebastian Huber
Move POSIX API priority validation into _POSIX_Priority_To_core().
2016-06-22posix: Make POSIX API aware of scheduler instancesSebastian Huber
2016-06-22posix: Rework sporadic server scheduling policySebastian Huber
Instead of lowering the priority in case the initial budget is consumed raise the priority for each new period. Restore the normal priority once the initial budget is consumed. This makes it later easier to combine the high priority phase with temporary priority boosts (e.g. via priority ceiling and inheritance). Use the thread lock to protect the POSIX thread attributes instead of the thread state lock. This makes it easier to change the thread priority and keep the POSIX attributes consistent. Fixes a false positive use of uninitialized variable warning.
2016-06-22posix: Delete POSIX_API_Control::schedparamSebastian Huber
This field was redundant.
2016-06-22posix: Delete POSIX_API_Control::schedpolicySebastian Huber
This field was redundant.
2016-06-15posix: Fix poradic server initial CPU budgetSebastian Huber
Update #2738.
2016-06-15posix: Use _POSIX_Threads_Sporadic_timer_insert()Sebastian Huber
2016-05-20posix: Rework thread cancellationSebastian Huber
Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX thread cancellation to use the thread life states. Update #2555. Update #2626.
2016-05-20score: Avoid Giant lock for _Thread_Start()Sebastian Huber
Update #2555.
2016-05-20posix: Rework pthread_join()Sebastian Huber
Rework pthread_join() to use _Thread_Join(). Close #2402. Update #2555. Update #2626. Close #2714.
2016-05-12score: Avoid Giant lock _Scheduler_Set_affinity()Sebastian Huber
Update #2555.
2016-04-12posix: Use a dedicated lock for scheduler changesSebastian Huber
Update #2555.
2016-03-04score: Replace watchdog handler implementationSebastian Huber
Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
2016-01-11score: Simplify _Thread_Start()Sebastian Huber
2016-01-11score: Introduce Thread_Entry_informationSebastian Huber
This avoids potential dead code in _Thread_Handler(). It gets rid of the dangerous function pointer casts. Update #2514.
2015-07-28score: Rename _POSIX_Absolute_timeout_to_ticks()Sebastian Huber
Rename _POSIX_Absolute_timeout_to_ticks() to _TOD_Absolute_timeout_to_ticks() and move it to the score directory. Delete empty <rtems/posix/time.h>.
2015-06-09score: Add Thread_Control::is_fpSebastian Huber
Store the floating-point unit property in the thread control block regardless of the CPU_HARDWARE_FP and CPU_SOFTWARE_FP settings. Make sure the floating-point unit is only enabled for the corresponding multilibs. This helps targets which have a volatile only floating point context like SPARC for example.
2014-04-15score: Add clustered/partitioned schedulingSebastian Huber
Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
2014-04-04score: Add scheduler control to scheduler opsSebastian Huber
Scheduler operations must be free of a global scheduler context to enable partitioned/clustered scheduling.
2014-04-03pthreadcreate.c: Fix bug where attr used instead of the_attrJoel Sherrill
2014-04-03posix: Move affinity from thread to scheduler.Jennifer Averett
2014-03-31score: PR2152: Use allocator mutex for objectsSebastian Huber
Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns
2014-03-11posix: Fix NULL pointer access in pthread_create()Sebastian Huber
2014-03-10posix: Fix NULL pointer access in pthread_create()Sebastian Huber
2014-03-07posix: Add POSIX thread affinity attribute support.Jennifer Averett
With the addition of pthread affinity information in pthread_attr_t, the existing code for pthread_attr_t had to be adjusted.
2014-01-09posix: fix race condition between pthread_create and capture engineTill Strauman
Reproducable crashes occur when using pthreads and the capture engine at the same time. 'pthread_create()' is the culprit. It creates a SCORE thread and then calls Thread_Start( ) without disabling thread-dispatching.