summaryrefslogtreecommitdiff
path: root/src/VBox/Devices/PC/DrvACPI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/PC/DrvACPI.cpp')
-rw-r--r--src/VBox/Devices/PC/DrvACPI.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/VBox/Devices/PC/DrvACPI.cpp b/src/VBox/Devices/PC/DrvACPI.cpp
index 250a8a40..d22fc11c 100644
--- a/src/VBox/Devices/PC/DrvACPI.cpp
+++ b/src/VBox/Devices/PC/DrvACPI.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;
@@ -924,8 +924,11 @@ static DECLCALLBACK(void) drvACPIDestruct(PPDMDRVINS pDrvIns)
PDMDRV_CHECK_VERSIONS_RETURN_VOID(pDrvIns);
#ifdef RT_OS_LINUX
- RTSemEventDestroy(pThis->hPollerSleepEvent);
- pThis->hPollerSleepEvent = NIL_RTSEMEVENT;
+ if (pThis->hPollerSleepEvent != NIL_RTSEMEVENT)
+ {
+ RTSemEventDestroy(pThis->hPollerSleepEvent);
+ pThis->hPollerSleepEvent = NIL_RTSEMEVENT;
+ }
RTCritSectDelete(&pThis->CritSect);
#endif
}
@@ -945,6 +948,9 @@ static DECLCALLBACK(int) drvACPIConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, ui
* Init the static parts.
*/
pThis->pDrvIns = pDrvIns;
+#ifdef RT_OS_LINUX
+ pThis->hPollerSleepEvent = NIL_RTSEMEVENT;
+#endif
/* IBase */
pDrvIns->IBase.pfnQueryInterface = drvACPIQueryInterface;
/* IACPIConnector */