Can you try runinng the nd connect test for 10 minutes to see if the
problem is realy solved?

Thanks
Tzachi 

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Sean Hefty
Sent: Friday, January 15, 2010 2:49 AM
To: ofw_list
Subject: [ofw] [PATCH] winverbs: delete critical sections when no
longerneeded

To avoid leaking memory, we need to call DeleteCriticalSection for all
critical sections once they are no longer needed.

Signed-off-by: Sean Hefty <[email protected]>
---
This should go in WOF2-2.  I checked all critical sections initialized
using InitializeCriticalSection.

 trunk/core/winmad/user/wm_provider.cpp  |    2 ++
 trunk/core/winverbs/user/wv_base.cpp    |    1 +
 trunk/ulp/libibumad/src/umad.cpp        |    1 +
 trunk/ulp/netdirect/user/nd_adapter.cpp |    1 +
 4 files changed, 5 insertions(+), 0 deletions(-)

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);
        }
        CloseHandle(m_hFile);
+       DeleteCriticalSection(&m_CritSecRead);
+       DeleteCriticalSection(&m_CritSecWrite);
        InterlockedDecrement(&WmRef);
 }
 
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) {
                CloseHandle(m_Overlap.hEvent);
        }
+       DeleteCriticalSection(&m_CritSec);
 }
 
 STDMETHODIMP CWVBase::
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)
 int umad_done(void)
 {
+       DeleteCriticalSection(&crit_sec);
        return 0;
 }
 
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();
        }
        m_pProvider->Release();
+       DeleteCriticalSection(&m_Lock);
 }
 
 STDMETHODIMP CNDAdapter::


_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to