source: rtems/cpukit/score/src/threadqprocesstimeout.c @ 2d7ae960

4.115
Last change on this file since 2d7ae960 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

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.

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*
2 *  Thread Queue Handler - Process Timeout Handler
3 *
4 *
5 *  COPYRIGHT (c) 1989-2008.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.rtems.com/license/LICENSE.
11 */
12
13#if HAVE_CONFIG_H
14#include "config.h"
15#endif
16
17#include <rtems/system.h>
18#include <rtems/score/chain.h>
19#include <rtems/score/isr.h>
20#include <rtems/score/object.h>
21#include <rtems/score/states.h>
22#include <rtems/score/thread.h>
23#include <rtems/score/threadq.h>
24#include <rtems/score/tqdata.h>
25
26void _Thread_queue_Process_timeout(
27  Thread_Control *the_thread
28)
29{
30  Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;
31
32  /*
33   *  If the_thread_queue is not synchronized, then it is either
34   *  "nothing happened", "timeout", or "satisfied".   If the_thread
35   *  is the executing thread, then it is in the process of blocking
36   *  and it is the thread which is responsible for the synchronization
37   *  process.
38   *
39   *  If it is not satisfied, then it is "nothing happened" and
40   *  this is the "timeout" transition.  After a request is satisfied,
41   *  a timeout is not allowed to occur.
42   */
43
44  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
45       _Thread_Is_executing( the_thread ) ) {
46    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
47      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
48      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
49    }
50  } else {
51    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
52    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
53  }
54}
55
Note: See TracBrowser for help on using the repository browser.