Version: 1
-Previous: eb55e5e54720f05f5b0d6b27a89f348f1d7f278a
-Head: 4f38489511010ec44fa79f96c633108eb61533a8
+Previous: 6f30bdb01de125e6a864ba397a7d4e2767709841
+Head: b1b14d55af910e494e2c705843af6b40ae2efdd7
Applied:
getopt: c7fe4c8b921fb8baef915df044dbcb0f678f1770
rm-build: 065e916eb4f6b5b133e705a6af588c318ed512c6
- delete-crit: 622ce4531b88d5b842edf5ab2835fe7a59e676a7
- refresh-temp: 4f38489511010ec44fa79f96c633108eb61533a8
+ delete-crit: b1b14d55af910e494e2c705843af6b40ae2efdd7
Unapplied:
test-bind: 0a9c2161d875de15f2754577387c075d3a884acc
test-nd-ps: fbed4ce5ede21048062c5b2806dae76f98632afd
Bottom: af34a4ac179d4def89d6140cbed25e5d3a3a9dd5
-Top: af34a4ac179d4def89d6140cbed25e5d3a3a9dd5
+Top: 2be0d741ab78101a493bb10c5f93ba8499dce21a
Author: U-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
Date: 2010-01-14 13:04:31 -0800
-mthca/lib: remove dependency on ibal
+winverbs: delete critical sections when no longer needed
-mthca does not require ibal. Remove the dependency from the
-sources file.
+To avoid leaking memory, we need to call DeleteCriticalSection
+for all critical sections once they are no longer needed.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
---
-
+diff --git a/trunk/core/winmad/user/wm_provider.cpp b/trunk/core/winmad/user/wm_provider.cpp
+index 96c20da..b0adc07 100644
+--- a/trunk/core/winmad/user/wm_provider.cpp
++++ b/trunk/core/winmad/user/wm_provider.cpp
+@@ -64,6 +64,8 @@ CWMProvider::~CWMProvider()
+ CloseHandle(m_OverlapWrite.hEvent);\r
+ }\r
+ CloseHandle(m_hFile);\r
++ DeleteCriticalSection(&m_CritSecRead);\r
++ DeleteCriticalSection(&m_CritSecWrite);\r
+ InterlockedDecrement(&WmRef);\r
+ }\r
+ \r
+diff --git a/trunk/core/winverbs/user/wv_base.cpp b/trunk/core/winverbs/user/wv_base.cpp
+index 52e9b6e..5ed4e9f 100644
+--- a/trunk/core/winverbs/user/wv_base.cpp
++++ b/trunk/core/winverbs/user/wv_base.cpp
+@@ -47,6 +47,7 @@ CWVBase::~CWVBase()
+ if (m_Overlap.hEvent != NULL) {\r
+ CloseHandle(m_Overlap.hEvent);\r
+ }\r
++ DeleteCriticalSection(&m_CritSec);\r
+ }\r
+ \r
+ STDMETHODIMP CWVBase::\r
+diff --git a/trunk/ulp/libibumad/src/umad.cpp b/trunk/ulp/libibumad/src/umad.cpp
+index 6204be0..62473e3 100644
+--- a/trunk/ulp/libibumad/src/umad.cpp
++++ b/trunk/ulp/libibumad/src/umad.cpp
+@@ -68,6 +68,7 @@ int umad_init(void)
+ __declspec(dllexport)\r
+ int umad_done(void)\r
+ {\r
++ DeleteCriticalSection(&crit_sec);\r
+ return 0;\r
+ }\r
+ \r
+diff --git a/trunk/ulp/netdirect/user/nd_adapter.cpp b/trunk/ulp/netdirect/user/nd_adapter.cpp
+index 107a44e..805f77b 100644
+--- a/trunk/ulp/netdirect/user/nd_adapter.cpp
++++ b/trunk/ulp/netdirect/user/nd_adapter.cpp
+@@ -96,6 +96,7 @@ CNDAdapter::~CNDAdapter(void)
+ m_pWvProvider->Release();\r
+ }\r
+ m_pProvider->Release();\r
++ DeleteCriticalSection(&m_Lock);\r
+ }\r
+ \r
+ STDMETHODIMP CNDAdapter::
+++ /dev/null
-Bottom: af34a4ac179d4def89d6140cbed25e5d3a3a9dd5
-Top: 2be0d741ab78101a493bb10c5f93ba8499dce21a
-Author: U-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
-Date: 2010-01-14 15:50:00 -0800
-
-Refresh of delete-crit
-
----
-
-diff --git a/trunk/core/winmad/user/wm_provider.cpp b/trunk/core/winmad/user/wm_provider.cpp
-index 96c20da..b0adc07 100644
---- a/trunk/core/winmad/user/wm_provider.cpp
-+++ b/trunk/core/winmad/user/wm_provider.cpp
-@@ -64,6 +64,8 @@ CWMProvider::~CWMProvider()
- CloseHandle(m_OverlapWrite.hEvent);\r
- }\r
- CloseHandle(m_hFile);\r
-+ DeleteCriticalSection(&m_CritSecRead);\r
-+ DeleteCriticalSection(&m_CritSecWrite);\r
- InterlockedDecrement(&WmRef);\r
- }\r
- \r
-diff --git a/trunk/core/winverbs/user/wv_base.cpp b/trunk/core/winverbs/user/wv_base.cpp
-index 52e9b6e..5ed4e9f 100644
---- a/trunk/core/winverbs/user/wv_base.cpp
-+++ b/trunk/core/winverbs/user/wv_base.cpp
-@@ -47,6 +47,7 @@ CWVBase::~CWVBase()
- if (m_Overlap.hEvent != NULL) {\r
- CloseHandle(m_Overlap.hEvent);\r
- }\r
-+ DeleteCriticalSection(&m_CritSec);\r
- }\r
- \r
- STDMETHODIMP CWVBase::\r
-diff --git a/trunk/ulp/libibumad/src/umad.cpp b/trunk/ulp/libibumad/src/umad.cpp
-index 6204be0..62473e3 100644
---- a/trunk/ulp/libibumad/src/umad.cpp
-+++ b/trunk/ulp/libibumad/src/umad.cpp
-@@ -68,6 +68,7 @@ int umad_init(void)
- __declspec(dllexport)\r
- int umad_done(void)\r
- {\r
-+ DeleteCriticalSection(&crit_sec);\r
- return 0;\r
- }\r
- \r
-diff --git a/trunk/ulp/netdirect/user/nd_adapter.cpp b/trunk/ulp/netdirect/user/nd_adapter.cpp
-index 107a44e..805f77b 100644
---- a/trunk/ulp/netdirect/user/nd_adapter.cpp
-+++ b/trunk/ulp/netdirect/user/nd_adapter.cpp
-@@ -96,6 +96,7 @@ CNDAdapter::~CNDAdapter(void)
- m_pWvProvider->Release();\r
- }\r
- m_pProvider->Release();\r
-+ DeleteCriticalSection(&m_Lock);\r
- }\r
- \r
- STDMETHODIMP CNDAdapter::