summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/pthreadcreate.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: Fix _POSIX_Threads_Create_extension()Sebastian Huber2017-10-171-2/+1
| | | | | | 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().
* posix: Validate affinity sets by the schedulerSebastian Huber2017-10-111-7/+2
| | | | Update #2514.
* posix: Unconditional thread attribute supportSebastian Huber2017-10-101-0/+1
| | | | Update #2514.
* posix: Simplify POSIX_API_ControlSebastian Huber2017-10-091-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill2017-01-111-4/+2
|
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-021-1/+1
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* score: Rework thread priority managementSebastian Huber2016-09-211-17/+15
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* posix: Fix pthread_create()Sebastian Huber2016-06-241-4/+7
| | | | Do not access data of the executing thread without proper locks.
* score: Introduce map priority scheduler operationSebastian Huber2016-06-221-1/+2
| | | | | | | | | | | 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.
* posix: Generalize _POSIX_Priority_To_core()Sebastian Huber2016-06-221-5/+5
| | | | Move POSIX API priority validation into _POSIX_Priority_To_core().
* posix: Make POSIX API aware of scheduler instancesSebastian Huber2016-06-221-4/+7
|
* posix: Rework sporadic server scheduling policySebastian Huber2016-06-221-17/+31
| | | | | | | | | | | | | | 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.
* posix: Delete POSIX_API_Control::schedparamSebastian Huber2016-06-221-2/+1
| | | | This field was redundant.
* posix: Delete POSIX_API_Control::schedpolicySebastian Huber2016-06-221-2/+1
| | | | This field was redundant.
* posix: Fix poradic server initial CPU budgetSebastian Huber2016-06-151-6/+6
| | | | Update #2738.
* posix: Use _POSIX_Threads_Sporadic_timer_insert()Sebastian Huber2016-06-151-7/+1
|
* posix: Rework thread cancellationSebastian Huber2016-05-201-0/+2
| | | | | | | | Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX thread cancellation to use the thread life states. Update #2555. Update #2626.
* score: Avoid Giant lock for _Thread_Start()Sebastian Huber2016-05-201-6/+2
| | | | Update #2555.
* posix: Rework pthread_join()Sebastian Huber2016-05-201-1/+4
| | | | | | | | | Rework pthread_join() to use _Thread_Join(). Close #2402. Update #2555. Update #2626. Close #2714.
* score: Avoid Giant lock _Scheduler_Set_affinity()Sebastian Huber2016-05-121-3/+5
| | | | Update #2555.
* posix: Use a dedicated lock for scheduler changesSebastian Huber2016-04-121-2/+2
| | | | Update #2555.
* score: Replace watchdog handler implementationSebastian Huber2016-03-041-1/+5
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* score: Simplify _Thread_Start()Sebastian Huber2016-01-111-1/+1
|
* score: Introduce Thread_Entry_informationSebastian Huber2016-01-111-8/+10
| | | | | | | This avoids potential dead code in _Thread_Handler(). It gets rid of the dangerous function pointer casts. Update #2514.
* score: Rename _POSIX_Absolute_timeout_to_ticks()Sebastian Huber2015-07-281-1/+0
| | | | | | 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>.
* score: Add Thread_Control::is_fpSebastian Huber2015-06-091-5/+1
| | | | | | | | 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.
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-2/+5
| | | | | | | | | | | | | | | 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.
* score: Add scheduler control to scheduler opsSebastian Huber2014-04-041-0/+1
| | | | | Scheduler operations must be free of a global scheduler context to enable partitioned/clustered scheduling.
* pthreadcreate.c: Fix bug where attr used instead of the_attrJoel Sherrill2014-04-031-14/+13
|
* posix: Move affinity from thread to scheduler.Jennifer Averett2014-04-031-4/+14
|
* score: PR2152: Use allocator mutex for objectsSebastian Huber2014-03-311-9/+4
| | | | | Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* posix: Fix NULL pointer access in pthread_create()Sebastian Huber2014-03-111-2/+2
|
* posix: Fix NULL pointer access in pthread_create()Sebastian Huber2014-03-101-1/+1
|
* posix: Add POSIX thread affinity attribute support.Jennifer Averett2014-03-071-2/+17
| | | | | With the addition of pthread affinity information in pthread_attr_t, the existing code for pthread_attr_t had to be adjusted.
* posix: fix race condition between pthread_create and capture engineTill Strauman2014-01-091-0/+5
| | | | | | 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.
* score: Create thread implementation headerSebastian Huber2013-07-261-4/+3
| | | | | | | | Move implementation specific parts of thread.h and thread.inl into new header file threadimpl.h. The thread.h contains now only the application visible API. Remove superfluous header file includes from various files.
* score: Create stack implementation headerSebastian Huber2013-07-231-0/+1
| | | | | | Move implementation specific parts of stack.h and stack.inl into new header file stackimpl.h. The stack.h contains now only the application visible API.
* score: Create watchdog implementation headerSebastian Huber2013-07-221-0/+1
| | | | | | Move implementation specific parts of watchdog.h and watchdog.inl into new header file watchdogimpl.h. The watchdog.h contains now only the application visible API.
* posix: Create pthread implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | Move implementation specific parts of pthread.h and pthread.inl into new header file pthreadimpl.h. The pthread.h contains now only the application visible API.
* posix: Create priority implementation headerSebastian Huber2013-07-221-1/+1
| | | | | | Move implementation specific parts of priority.h and priority.inl into new header file priorityimpl.h. Remove priority.h since there is no application visible API.
* posix: Use _Thread_Get_executing()Sebastian Huber2013-07-221-1/+1
|
* scheduler: Add start idle thread operationSebastian Huber2013-06-141-1/+2
| | | | Add and use _Scheduler_Start_idle().
* cpukit/posix: Doxygen group is POSIXAPIJoel Sherrill2013-01-101-1/+1
|
* posix: Doxygen Enhancement Task #9Ayush Awasthi2012-12-191-0/+7
| | | | http://www.google-melange.com/gci/task/view/google/gci2012/7948216
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-111-2/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* 2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-291-8/+0
| | | | | | | | | | | | | | | | | | | PR 1573/cpukit * configure.ac, posix/src/killinfo.c, posix/src/psignalclearprocesssignals.c, posix/src/psignalsetprocesssignals.c, posix/src/psignalunblockthread.c, posix/src/pthreadcreate.c, posix/src/pthreadkill.c, posix/src/pthreadsigmask.c, rtems/src/signalsend.c, rtems/src/taskmode.c, score/Makefile.am, score/preinstall.am, score/include/rtems/system.h, score/include/rtems/score/context.h, score/include/rtems/score/isr.h, score/include/rtems/score/thread.h, score/src/isr.c, score/src/isrthreaddispatch.c, score/src/thread.c, score/src/threaddispatch.c, score/src/threadloadenv.c: Add a per cpu data structure which contains the information required by RTEMS for each CPU core. This encapsulates information such as thread executing, heir, idle and dispatch needed. * score/include/rtems/score/percpu.h, score/src/percpu.c: New files.
* Reflect POSIX sched_parm changes.Ralf Corsepius2010-04-031-1/+1
|
* Whitespace removal.Ralf Corsepius2009-11-301-1/+1
|
* 2009-06-24 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2009-06-241-68/+32
| | | | | | | | | | | | | | | * posix/Makefile.am, posix/include/rtems/posix/priority.h, posix/include/rtems/posix/pthread.h, posix/inline/rtems/posix/priority.inl, posix/src/killinfo.c, posix/src/pthread.c, posix/src/pthreadcreate.c, posix/src/pthreadsetschedparam.c: Various modifications to improve binary code coverage analysis. Some of these are to mark code as debug only. Some are to break conditional expressions into multiple lines. Some are to move inline methods that are not time critical into subroutines to make them easier to test. Inlining them multiple times means that their logic paths are spread across multiple methods. This explodes the test cases required. * posix/src/psxpriorityisvalid.c, posix/src/psxtransschedparam.c: New files.