Hi Sean, I have synced to the latest trunk of the community and I must say that I can still see the leak. Smaller than before but it still seems to be there.
I'm running: ndconn.exe c 11.4.12.128 1001 t1 And the leak is very clear. 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
