public void IsError(Exception exception) { ErrorInfo = exception; HaveParsingResults = false; HaveRequestHeaders = false; ParsedRequest.Clear(); RequestBulk.Clear(); RequestParams.Clear(); }
public void Complete(bool waitForProducerThread) { var completion = Completion; if (completion != null) { Completion = null; completion.Discard(); } Thread.MemoryBarrier(); DriverOutputBuffer = null; ResponseHeaders = null; ParsedRequest.Clear(); var cancellation = m_cancellationTokenSource; var engine = m_engine; var message = m_requestMessage; var authContext = m_authContext; if (cancellation != null) { cancellation.Cancel(); } if (engine != null) { if (m_tracer.IsDebugEnabled) { if (message != null && authContext != null) { var age = (DateTime.Now - message.CreatedOn).TotalMilliseconds; m_tracer.Debug( string.Format( "Releasing request context for auth context id {0}, total time spent: {1} ms", authContext.ContextId, age)); } else { m_tracer.Debug("Releasing request context"); } } engine.EndExecution(this, waitForProducerThread); } if (message != null) { message.Close(); } Cleanup(); }
public void Cleanup() { m_authContext = null; m_lastError = null; m_requestMessage = null; m_engine = null; ResponseHeaders = null; RecordsAffected = 0; TotalRowsProduced = 0; DriverOutputBuffer = null; InputDataEnumerator = null; ClauseEvaluationContext = null; OutputDataBuffer = null; Completion = null; ContainerDescriptor = null; CacheInfo = null; Request.Clear(); RequestBulk.Clear(); RequestParameters.Clear(); ParsedRequest.Clear(); var cancellation = Interlocked.CompareExchange(ref m_cancellationTokenSource, null, m_cancellationTokenSource); if (cancellation != null) { cancellation.Cancel(); } var ring = Interlocked.CompareExchange(ref m_buffersRing, null, m_buffersRing); if (ring != null) { ring.Dispose(); } var items = m_buffersRingItems; // do not replace with null if (items != null) { foreach (var item in items) { item.Cleanup(); } } }