Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | score: Introduce Thread_queue_Heads | Sebastian Huber | 2015-07-23 | 1 | -2/+2 |
| | | | | | | | | | | | | | Move the storage for the thread queue heads to the threads. Each thread provides a set of thread queue heads allocated from a dedicated memory pool. In case a thread blocks on a queue, then it lends its heads to the queue. In case the thread unblocks, then it takes a free set of threads from the queue. Since a thread can block on at most one queue this works. This mechanism is used in FreeBSD. The motivation for this change is to reduce the memory demands of the synchronization objects. On a 32-bit uni-processor configuration the Thread_queue_Control size is now 8 bytes, compared to 64 bytes in RTEMS 4.10 (other changes reduced the size as well). | ||||
* | score: Introduce Thread_queue_Queue | Sebastian Huber | 2015-07-23 | 1 | -2/+2 |
| | | | | | | Separate the thread queue heads and lock from the operations. This enables the support for light weight objects which only support one queuing discipline. | ||||
* | score: Typo | Sebastian Huber | 2015-07-13 | 1 | -1/+1 |
| | |||||
* | score: Add static initializers for thread queues | Sebastian Huber | 2015-05-19 | 1 | -0/+14 |
| | |||||
* | score: _Thread_queue_Extract() | Sebastian Huber | 2015-05-19 | 1 | -25/+4 |
| | | | | | Remove thread queue parameter from _Thread_queue_Extract() since the current thread queue is stored in the thread control block. | ||||
* | score: Delete Thread_queue_Control::state | Sebastian Huber | 2015-04-23 | 1 | -1/+1 |
| | | | | | Use a parameter for _Thread_queue_Enqueue() instead to reduce memory usage. | ||||
* | score: PR2172: _Thread_queue_Extract() | Sebastian Huber | 2014-04-01 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add _Thread_queue_Extract_with_return_code(). On SMP this sequence in _Thread_queue_Process_timeout() was broken: [...] /* * After we enable interrupts here, a lot may happen in the * meantime, e.g. nested interrupts may release the resource that * times out here. So we enter _Thread_queue_Extract() * speculatively. Inside this function we check the actual status * under ISR disable protection. This ensures that exactly one * executing context performs the extract operation (other parties * may call _Thread_queue_Dequeue()). If this context won, then * we have a timeout. * * We can use the_thread_queue pointer here even if * the_thread->Wait.queue is already set to NULL since the extract * operation will only use the thread queue discipline to select * the right extract operation. The timeout status is set during * thread queue initialization. */ we_did_it = _Thread_queue_Extract( the_thread_queue, the_thread ); if ( we_did_it ) { the_thread->Wait.return_code = the_thread_queue->timeout_status; } [...] In case _Thread_queue_Extract() successfully extracted a thread, then this thread may start execution on a remote processor immediately and read the the_thread->Wait.return_code before we update it here with the timeout status. Thus it observes a successful operation even if it timed out. | ||||
* | tests/sptests: Use <rtems/test.h> | Sebastian Huber | 2014-03-25 | 1 | -2/+6 |
| | |||||
* | Change all references of rtems.com to rtems.org. | Chris Johns | 2014-03-21 | 2 | -2/+2 |
| | |||||
* | sptests/spthreadq01: Add SMP support | Sebastian Huber | 2013-08-27 | 1 | -2/+6 |
| | |||||
* | score: Create threadq implementation header | Sebastian Huber | 2013-07-26 | 1 | -1/+1 |
| | | | | | | | | Move implementation specific parts of tqdata.h, threadq.h and threadq.inl into new header file threadqimpl.h. The threadq.h contains now only the application visible API. Delete tqdata.h. | ||||
* | testsuites: Use _Thread_Get_executing() | Sebastian Huber | 2013-07-22 | 1 | -1/+1 |
| | |||||
* | sptests - Eliminate missing prototype warnings | Joel Sherrill | 2012-05-31 | 1 | -0/+7 |
| | |||||
* | Remove All CVS Id Strings Possible Using a Script | Joel Sherrill | 2012-05-11 | 3 | -9/+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. | ||||
* | Revert: Remove CVS Ids | Joel Sherrill | 2012-05-07 | 1 | -0/+5 |
| | | | | | See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html for details. | ||||
* | Remove CVS-Ids. | Ralf Corsépius | 2012-05-04 | 1 | -5/+0 |
| | |||||
* | Remove all .cvsignore files. | Joel Sherrill | 2012-02-01 | 1 | -2/+0 |
| | |||||
* | 2011-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> | Joel Sherrill | 2011-12-08 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 1589/build * sp01/Makefile.am, sp02/Makefile.am, sp03/Makefile.am, sp04/Makefile.am, sp05/Makefile.am, sp06/Makefile.am, sp07/Makefile.am, sp08/Makefile.am, sp09/Makefile.am, sp10/Makefile.am, sp11/Makefile.am, sp12/Makefile.am, sp13/Makefile.am, sp14/Makefile.am, sp15/Makefile.am, sp16/Makefile.am, sp17/Makefile.am, sp18/Makefile.am, sp19/Makefile.am, sp20/Makefile.am, sp2038/Makefile.am, sp21/Makefile.am, sp22/Makefile.am, sp23/Makefile.am, sp24/Makefile.am, sp25/Makefile.am, sp26/Makefile.am, sp27/Makefile.am, sp27a/Makefile.am, sp28/Makefile.am, sp29/Makefile.am, sp30/Makefile.am, sp31/Makefile.am, sp32/Makefile.am, sp33/Makefile.am, sp34/Makefile.am, sp35/Makefile.am, sp36/Makefile.am, sp37/Makefile.am, sp38/Makefile.am, sp39/Makefile.am, sp40/Makefile.am, sp41/Makefile.am, sp42/Makefile.am, sp43/Makefile.am, sp44/Makefile.am, sp45/Makefile.am, sp46/Makefile.am, sp47/Makefile.am, sp48/Makefile.am, sp49/Makefile.am, sp50/Makefile.am, sp51/Makefile.am, sp52/Makefile.am, sp53/Makefile.am, sp54/Makefile.am, sp55/Makefile.am, sp56/Makefile.am, sp57/Makefile.am, sp58/Makefile.am, sp59/Makefile.am, sp60/Makefile.am, sp62/Makefile.am, sp63/Makefile.am, sp64/Makefile.am, sp65/Makefile.am, sp66/Makefile.am, sp67/Makefile.am, sp68/Makefile.am, sp69/Makefile.am, sp70/Makefile.am, sp71/Makefile.am, sp72/Makefile.am, sp73/Makefile.am, sp74/Makefile.am, sp75/Makefile.am, sp76/Makefile.am, spassoc01/Makefile.am, spcbssched01/Makefile.am, spcbssched02/Makefile.am, spcbssched03/Makefile.am, spchain/Makefile.am, spclockget/Makefile.am, spcoverage/Makefile.am, spedfsched01/Makefile.am, spedfsched02/Makefile.am, spedfsched03/Makefile.am, sperror01/Makefile.am, sperror02/Makefile.am, sperror03/Makefile.am, spfatal01/Makefile.am, spfatal02/Makefile.am, spfatal03/Makefile.am, spfatal04/Makefile.am, spfatal05/Makefile.am, spfatal06/Makefile.am, spfatal07/Makefile.am, spfatal08/Makefile.am, spfatal09/Makefile.am, spfatal10/Makefile.am, spfatal11/Makefile.am, spfatal12/Makefile.am, spfatal13/Makefile.am, spfatal14/Makefile.am, spfatal15/Makefile.am, spfatal16/Makefile.am, spfatal17/Makefile.am, spfatal18/Makefile.am, spfatal19/Makefile.am, spfatal20/Makefile.am, spfatal21/Makefile.am, spfatal22/Makefile.am, spfatal23/Makefile.am, spfatal24/Makefile.am, spfatal25/Makefile.am, spfifo01/Makefile.am, spfifo02/Makefile.am, spfifo03/Makefile.am, spfifo04/Makefile.am, spfifo05/Makefile.am, spheapprot/Makefile.am, spintrcritical01/Makefile.am, spintrcritical02/Makefile.am, spintrcritical03/Makefile.am, spintrcritical04/Makefile.am, spintrcritical05/Makefile.am, spintrcritical06/Makefile.am, spintrcritical07/Makefile.am, spintrcritical08/Makefile.am, spintrcritical09/Makefile.am, spintrcritical10/Makefile.am, spintrcritical11/Makefile.am, spintrcritical12/Makefile.am, spintrcritical13/Makefile.am, spintrcritical14/Makefile.am, spintrcritical15/Makefile.am, spintrcritical16/Makefile.am, spintrcritical17/Makefile.am, spmkdir/Makefile.am, spmountmgr01/Makefile.am, spnotepad01/Makefile.am, spnsext01/Makefile.am, spobjgetnext/Makefile.am, spprintk/Makefile.am, spprivenv01/Makefile.am, sprbtree01/Makefile.am, spsimplesched01/Makefile.am, spsimplesched02/Makefile.am, spsimplesched03/Makefile.am, spsize/Makefile.am, spstkalloc/Makefile.am, spthreadq01/Makefile.am, spwatchdog/Makefile.am, spwkspace/Makefile.am: Remove obsolete optional manager capability. | ||||
* | Add HAVE_CONFIG_H. | Ralf Corsepius | 2011-02-22 | 1 | -0/+4 |
| | |||||
* | 2009-07-09 Joel Sherrill <joel.sherrill@OARcorp.com> | Joel Sherrill | 2009-07-09 | 5 | -0/+115 |
* Makefile.am, configure.ac: Add test for Thread Queue extract a thread not blocked on a thread queue. * spthreadq01/.cvsignore, spthreadq01/Makefile.am, spthreadq01/init.c, spthreadq01/spthreadq01.doc, spthreadq01/spthreadq01.scn: New files. |