source: rtems/cpukit/score/src/threadyield.c @ bbd6d27a

5
Last change on this file since bbd6d27a was 4054c916, checked in by Sebastian Huber <sebastian.huber@…>, on 03/20/15 at 12:41:27

score: Add scheduler acquire/release

This is currently a global lock for all scheduler instances. It should
get replaced with one lock per scheduler instance in the future.

Update #2273.

  • Property mode set to 100644
File size: 819 bytes
Line 
1/**
2 * @file
3 *
4 * @brief Thread Yield
5 *
6 * @ingroup ScoreThread
7 */
8
9/*
10 * Copyright (c) 2014 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Dornierstr. 4
14 *  82178 Puchheim
15 *  Germany
16 *  <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.org/license/LICENSE.
21 */
22
23#if HAVE_CONFIG_H
24  #include "config.h"
25#endif
26
27#include <rtems/score/threadimpl.h>
28#include <rtems/score/schedulerimpl.h>
29
30void _Thread_Yield( Thread_Control *executing )
31{
32  ISR_lock_Context lock_context;
33
34  _Scheduler_Acquire( executing, &lock_context );
35
36  if ( _States_Is_ready( executing->current_state ) ) {
37    _Scheduler_Yield( executing );
38  }
39
40  _Scheduler_Release( executing, &lock_context );
41}
Note: See TracBrowser for help on using the repository browser.