summaryrefslogtreecommitdiff
path: root/src/node_win32_perfctr_provider.cc
diff options
context:
space:
mode:
authorScott Blomquist <sblom@microsoft.com>2013-01-02 18:06:41 -0800
committerBert Belder <bertbelder@gmail.com>2013-01-03 23:31:26 +0100
commit5a39df49593a862d0de9ef01db2f83e23b2fd67f (patch)
treee30ac072b6c9bed7d751ce2fefafdd573a762a1c /src/node_win32_perfctr_provider.cc
parenta7d8c21bca112a83a711b89e432a2486f0049557 (diff)
downloadnode-new-5a39df49593a862d0de9ef01db2f83e23b2fd67f.tar.gz
windows: fix perfctr crash on XP and 2003
Some performance counter related functions are not available on Windows XP and Windows Server 2003, which caused node to call a NULL pointer. Closes #4462 Closes #4511
Diffstat (limited to 'src/node_win32_perfctr_provider.cc')
-rw-r--r--src/node_win32_perfctr_provider.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/node_win32_perfctr_provider.cc b/src/node_win32_perfctr_provider.cc
index 8135726852..903150ed61 100644
--- a/src/node_win32_perfctr_provider.cc
+++ b/src/node_win32_perfctr_provider.cc
@@ -172,6 +172,13 @@ void InitPerfCountersWin32() {
ZeroMemory(&providerContext, sizeof(providerContext));
providerContext.ContextSize = sizeof(providerContext);
+ if (!perfctr_startProvider ||
+ !perfctr_setCounterSetInfo ||
+ !perfctr_createInstance) {
+ NodeCounterProvider = NULL;
+ return;
+ }
+
status = perfctr_startProvider(&NodeCounterSetGuid,
&providerContext,
&NodeCounterProvider);