summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spthreadq01 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Introduce Thread_queue_HeadsSebastian Huber2015-07-231-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_QueueSebastian Huber2015-07-231-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: TypoSebastian Huber2015-07-131-1/+1
|
* score: Add static initializers for thread queuesSebastian Huber2015-05-191-0/+14
|
* score: _Thread_queue_Extract()Sebastian Huber2015-05-191-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::stateSebastian Huber2015-04-231-1/+1
| | | | | Use a parameter for _Thread_queue_Enqueue() instead to reduce memory usage.
* score: PR2172: _Thread_queue_Extract()Sebastian Huber2014-04-011-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 Huber2014-03-251-2/+6
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-212-2/+2
|
* sptests/spthreadq01: Add SMP supportSebastian Huber2013-08-271-2/+6
|
* score: Create threadq implementation headerSebastian Huber2013-07-261-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 Huber2013-07-221-1/+1
|
* sptests - Eliminate missing prototype warningsJoel Sherrill2012-05-311-0/+7
|
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-113-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 IdsJoel Sherrill2012-05-071-0/+5
| | | | | See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html for details.
* Remove CVS-Ids.Ralf Corsépius2012-05-041-5/+0
|
* Remove all .cvsignore files.Joel Sherrill2012-02-011-2/+0
|
* 2011-12-08 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2011-12-081-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 Corsepius2011-02-221-0/+4
|
* 2009-07-09 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2009-07-095-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.