On 11/29/2011 08:44 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange(a)redhat.com>
To avoid probing the host power management features on any
call to virInitialize, only initialize the mutex in
virNodeSuspendInit. Do lazy load of the supported PM target
mask when it is actually needed
* src/util/virnodesuspend.c: Lazy init of supported features
---
src/util/virnodesuspend.c | 99 +++++++++++++++++++++++----------------------
1 files changed, 50 insertions(+), 49 deletions(-)
diff --git a/src/util/virnodesuspend.c b/src/util/virnodesuspend.c
index 6420f5b..75a8c2f 100644
--- a/src/util/virnodesuspend.c
+++ b/src/util/virnodesuspend.c
@@ -46,9 +46,10 @@
* Bitmask to hold the Power Management features supported by the host,
* such as Suspend-to-RAM, Suspend-to-Disk, Hybrid-Suspend etc.
*/
-static unsigned int hostPMFeatures;
+static unsigned int nodeSuspendTargetMask = 0;
+static bool nodeSuspendTargetMaskInit = false;
C89 and later guarantee that static variables are 0-initialized unless
you state otherwise. Meanwhile, explicit initialization penalizes old
compilers that stick the variables into .data instead of .bss. gcc is
smart enough to generate 0-init'd variables into .bss for smaller
executables, but since not all compilers are that smart, you may want to
remove these explicit initializations to 0.
ACK.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org