Changeset 215ccce in rtems


Ignore:
Timestamp:
Aug 23, 2013, 9:52:01 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
f8f1bdad
Parents:
842d63ba
git-author:
Sebastian Huber <sebastian.huber@…> (08/23/13 09:52:01)
git-committer:
Sebastian Huber <sebastian.huber@…> (08/26/13 08:02:53)
Message:

score: PR2140: _Thread_queue_Extract()

Return if the executing context performed the extract operation since
interrupts may interfere.

Location:
cpukit/score
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/include/rtems/score/threadqimpl.h

    r842d63ba r215ccce  
    136136 *  @param[in] the_thread_queue is the pointer to the ThreadQ header
    137137 *  @param[in] the_thread is the pointer to a thread control block that is to be removed
    138  */
    139 void _Thread_queue_Extract(
     138 *
     139 *  @retval true The extract operation was performed by the executing context.
     140 *  @retval false Otherwise.
     141 */
     142bool _Thread_queue_Extract(
    140143  Thread_queue_Control *the_thread_queue,
    141144  Thread_Control       *the_thread
     
    259262 *  - INTERRUPT LATENCY:
    260263 *    + EXTRACT_PRIORITY
    261  */
    262 void _Thread_queue_Extract_priority_helper(
     264 *
     265 *  @retval true The extract operation was performed by the executing context.
     266 *  @retval false Otherwise.
     267 */
     268bool _Thread_queue_Extract_priority_helper(
    263269  Thread_queue_Control *the_thread_queue,
    264270  Thread_Control       *the_thread,
     
    333339 *  and cancels any timeouts associated with this blocking.
    334340 */
    335 void _Thread_queue_Extract_fifo(
     341bool _Thread_queue_Extract_fifo(
    336342  Thread_queue_Control *the_thread_queue,
    337343  Thread_Control       *the_thread
  • cpukit/score/src/threadqextract.c

    r842d63ba r215ccce  
    2222#include <rtems/score/threadqimpl.h>
    2323
    24 void _Thread_queue_Extract(
     24bool _Thread_queue_Extract(
    2525  Thread_queue_Control *the_thread_queue,
    2626  Thread_Control       *the_thread
     
    3232   */
    3333  if  ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
    34     _Thread_queue_Extract_priority( the_thread_queue, the_thread );
     34    return _Thread_queue_Extract_priority( the_thread_queue, the_thread );
    3535  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */
    36     _Thread_queue_Extract_fifo( the_thread_queue, the_thread );
     36    return _Thread_queue_Extract_fifo( the_thread_queue, the_thread );
    3737
    3838}
  • cpukit/score/src/threadqextractfifo.c

    r842d63ba r215ccce  
    2626#include <rtems/score/watchdogimpl.h>
    2727
    28 void _Thread_queue_Extract_fifo(
     28bool _Thread_queue_Extract_fifo(
    2929  Thread_queue_Control *the_thread_queue __attribute__((unused)),
    3030  Thread_Control       *the_thread
     
    3737  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    3838    _ISR_Enable( level );
    39     return;
     39    return false;
    4040  }
    4141
     
    5959#endif
    6060
     61  return true;
    6162}
  • cpukit/score/src/threadqextractpriority.c

    r842d63ba r215ccce  
    2525#include <rtems/score/watchdogimpl.h>
    2626
    27 void _Thread_queue_Extract_priority_helper(
     27bool _Thread_queue_Extract_priority_helper(
    2828  Thread_queue_Control *the_thread_queue __attribute__((unused)),
    2929  Thread_Control       *the_thread,
     
    4646  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    4747    _ISR_Enable( level );
    48     return;
     48    return false;
    4949  }
    5050
     
    8888  if ( requeuing ) {
    8989    _ISR_Enable( level );
    90     return;
     90    return true;
    9191  }
    9292
     
    104104    _Thread_MP_Free_proxy( the_thread );
    105105#endif
     106
     107  return true;
    106108}
Note: See TracChangeset for help on using the changeset viewer.