VirtualBox

source: vbox/trunk/src/VBox/Runtime/r0drv/linux/thread-r0drv-linux.c@ 5125

Last change on this file since 5125 was 4071, checked in by vboxsync, 17 years ago

Biggest check-in ever. New source code headers for all (C) innotek files.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.5 KB
Line 
1/* $Id: thread-r0drv-linux.c 4071 2007-08-07 17:07:59Z vboxsync $ */
2/** @file
3 * innotek Portable Runtime - Threads, Ring-0 Driver, Linux.
4 */
5
6/*
7 * Copyright (C) 2006-2007 innotek GmbH
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License as published by the Free Software Foundation,
13 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
14 * distribution. VirtualBox OSE is distributed in the hope that it will
15 * be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18/*******************************************************************************
19* Header Files *
20*******************************************************************************/
21#include "the-linux-kernel.h"
22
23#include <iprt/thread.h>
24#include <iprt/err.h>
25
26
27RTDECL(RTNATIVETHREAD) RTThreadNativeSelf(void)
28{
29 return (RTNATIVETHREAD)current;
30}
31
32
33RTDECL(int) RTThreadSleep(unsigned cMillies)
34{
35 long cJiffies = msecs_to_jiffies(cMillies);
36 set_current_state(TASK_INTERRUPTIBLE);
37 cJiffies = schedule_timeout(cJiffies);
38 if (!cJiffies)
39 return VINF_SUCCESS;
40 return VERR_INTERRUPTED;
41}
42
43
44RTDECL(bool) RTThreadYield(void)
45{
46#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 20)
47 yield();
48#else
49 set_current_state(TASK_RUNNING);
50 sys_sched_yield();
51 schedule();
52#endif
53 return true;
54}
55
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette