internal void desbloquear(DescriptorBloqueo descriptorBloqueo) { lock (Entradas) { descriptorBloqueo.Entrada.desbloquear(descriptorBloqueo.Transaccion); } }
/// <summary> /// Bloquea para esa transaccion, debe controlarse antes de llamar a este mensaje /// </summary> /// <param name="transaccion"></param> internal DescriptorBloqueo bloquear(Transaccion transaccion, TipoBloqueo tipo) { //este control es por las dudas if (Tipo == TipoBloqueo.BLOQUEO_ESCRITURA && Bloqueado) { throw new Exception("Ya estaba bloqueado como escritura"); } bloqueado = true; this.tipo = tipo; bloqueados.Add(transaccion); DescriptorBloqueo descriptor = new DescriptorBloqueo(this, transaccion); transaccion.agregarBloqueado(descriptor); return(descriptor); }