private void Dispose(bool disposing) { lock (this) { // if (disposing) cleanup managed objects if (m_pShare != IntPtr.Zero) { External.curl_shim_cleanup_share_delegates(m_pShare); External.curl_share_cleanup(m_pShare); m_hThis.Free(); m_ptrThis = IntPtr.Zero; m_pShare = IntPtr.Zero; } } }