source: rtems/cpukit/score/src/scheduleredfyield.c @ 99fc1d1d

5
Last change on this file since 99fc1d1d was 99fc1d1d, checked in by Sebastian Huber <sebastian.huber@…>, on Jun 9, 2016 at 7:30:40 PM

score: Rework EDF scheduler

Use inline red-black tree insert. Do not use shifting priorities since
this is not supported by the thread queues. Due to the 32-bit
Priority_Control this currently limits the uptime to 49days with a 1ms
clock tick.

Update #2173.

  • Property mode set to 100644
File size: 959 bytes
Line 
1/**
2 * @file
3 *
4 * @brief Scheduler EDF Yield
5 *
6 * @ingroup ScoreScheduler
7 */
8
9/*
10 *  Copyright (C) 2011 Petr Benes.
11 *  Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.org/license/LICENSE.
16 */
17
18#if HAVE_CONFIG_H
19#include "config.h"
20#endif
21
22#include <rtems/score/scheduleredfimpl.h>
23
24Scheduler_Void_or_thread _Scheduler_EDF_Yield(
25  const Scheduler_Control *scheduler,
26  Thread_Control          *the_thread
27)
28{
29  Scheduler_EDF_Context *context;
30  Scheduler_EDF_Node    *node;
31
32  context = _Scheduler_EDF_Get_context( scheduler );
33  node = _Scheduler_EDF_Thread_get_node( the_thread );
34
35  _Scheduler_EDF_Extract( context, node );
36  _Scheduler_EDF_Enqueue( context, node, node->current_priority );
37  _Scheduler_EDF_Schedule_body( scheduler, the_thread, false );
38
39  SCHEDULER_RETURN_VOID_OR_NULL;
40}
Note: See TracBrowser for help on using the repository browser.