Mono.CSharp.Lock.EmitTryBody C# (CSharp) Method

EmitTryBody() protected method

protected EmitTryBody ( EmitContext ec ) : void
ec EmitContext
return void
		protected override void EmitTryBody (EmitContext ec)
		{
			//
			// Monitor.Enter (expr_copy, ref lock_taken)
			//
			if (lock_taken != null) {
				expr_copy.Emit (ec);
				lock_taken.LocalInfo.CreateBuilder (ec);
				lock_taken.AddressOf (ec, AddressOp.Load);
				ec.Emit (OpCodes.Call, TypeManager.void_monitor_enter_object);
			}

			Statement.Emit (ec);
		}