All pastes #280234 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-12-15 19:19 UTC
rendered paste body
Line 628:
		//
		// Ticks the clock: next step on the pipeline.
		//
		void Tick ()
		{
			try {
				if (pipeline != null && pipeline.MoveNext ()){
					if (pipeline == null || (bool)pipeline.Current)
						PipelineDone ();
				}
			} catch (ThreadAbortException taex) {
				Console.WriteLine("ThreadAbortException catched up!!...{0}",taex.Message);
				object obj = taex.ExceptionState;
				Thread.ResetAbort ();
				stop_processing = true;
				if (obj is StepTimeout)
					ProcessError (new HttpException ("The request timed out."));
				else
					PipelineDone ();
			} catch (Exception e) {
				Console.WriteLine ("Tick caught an exception that has not been propagated:\n" + e.StackTrace);
			}

			Console.WriteLine("byebye Tick()!");

		}


.
.
.
Line 800:



		//
		// Invoked at the end of the pipeline execution
		//
		void PipelineDone ()
		{
			Console.WriteLine("PipelineDon() Ejecuted...");
			try {
				if (EndRequest != null)
					EndRequest (this, EventArgs.Empty);
			} catch (Exception e){
				Console.WriteLine("Catching up Excepcion when EndRequest");
				ProcessError (e);
			}

			try {
				OutputPage ();
			} catch (Exception e) {
				Console.WriteLine ("Internal error: OutputPage threw an exception " + e);
			} finally {
				Console.WriteLine("FFinnaly on OutPage()");		
				if (context == null)
					context = HttpContext.Current;
				context.WorkerRequest.EndOfRequest();
				if (factory != null && context.Handler != null){
					factory.ReleaseHandler (context.Handler);
					context.Handler = null;
					factory = null;
				}
#if NET_2_0
				context.PopHandler ();
#endif
Console.WriteLine("FFinnaly 1");	
				if (begin_iar != null){
					try {
						begin_iar.Complete ();
					} catch {

						//
						// TODO: if this throws an error, we have no way of reporting it
						// Not really too bad, since the only failure might be
						// `HttpRuntime.request_processed'
						//
					} finally {
						done.Set ();
					}
				} else {
					done.Set ();
				}
				
				// context = null; -> moved to PostDone
				pipeline = null;
				current_ai = null;
			}
Console.WriteLine("FFinnaly 2");	
			PostDone ();
Console.WriteLine("FFinnaly 3");	
		}





===> Hit Return to stop the server.
ThreadAbortException catched up!!...Thread was being aborted
PipelineDon() Ejecuted...
FFinnaly on OutPage()
FFinnaly 1
FFinnaly 2
FFinnaly 3
byebye Tick()!