diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2014-03-26 19:21:20 +0000 |
---|---|---|
committer | <> | 2014-05-08 15:03:54 +0000 |
commit | fb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch) | |
tree | c2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/VBox/Runtime/r3/os2/thread-os2.cpp | |
parent | 58ed4748338f9466599adfc8a9171280ed99e23f (diff) | |
download | VirtualBox-master.tar.gz |
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
Diffstat (limited to 'src/VBox/Runtime/r3/os2/thread-os2.cpp')
-rw-r--r-- | src/VBox/Runtime/r3/os2/thread-os2.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/VBox/Runtime/r3/os2/thread-os2.cpp b/src/VBox/Runtime/r3/os2/thread-os2.cpp index e2efa01f..e6f20213 100644 --- a/src/VBox/Runtime/r3/os2/thread-os2.cpp +++ b/src/VBox/Runtime/r3/os2/thread-os2.cpp @@ -4,7 +4,7 @@ */ /* - * Copyright (C) 2006-2007 Oracle Corporation + * Copyright (C) 2006-2012 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; @@ -78,7 +78,7 @@ DECLHIDDEN(int) rtThreadNativeInit(void) } -DECLHIDDEN(int) rtThreadNativeAdopt(PRTTHREADINT pThread) +static void rtThreadOs2BlockSigAlarm(void) { /* * Block SIGALRM - required for timer-posix.cpp. @@ -89,6 +89,17 @@ DECLHIDDEN(int) rtThreadNativeAdopt(PRTTHREADINT pThread) sigemptyset(&SigSet); sigaddset(&SigSet, SIGALRM); sigprocmask(SIG_BLOCK, &SigSet, NULL); +} + + +DECLHIDDEN(void) rtThreadNativeReInitObtrusive(void) +{ + rtThreadOs2BlockSigAlarm(); +} + + +DECLHIDDEN(int) rtThreadNativeAdopt(PRTTHREADINT pThread) +{ *g_ppCurThread = pThread; return VINF_SUCCESS; @@ -107,15 +118,7 @@ DECLHIDDEN(void) rtThreadNativeDestroy(PRTTHREADINT pThread) */ static void rtThreadNativeMain(void *pvArgs) { - /* - * Block SIGALRM - required for timer-posix.cpp. - * This is done to limit harm done by OSes which doesn't do special SIGALRM scheduling. - * It will not help much if someone creates threads directly using pthread_create. :/ - */ - sigset_t SigSet; - sigemptyset(&SigSet); - sigaddset(&SigSet, SIGALRM); - sigprocmask(SIG_BLOCK, &SigSet, NULL); + rtThreadOs2BlockSigAlarm(); /* * Call common main. |