internal void desbloquear(DescriptorBloqueo descriptorBloqueo)
 {
     lock (Entradas)
     {
         descriptorBloqueo.Entrada.desbloquear(descriptorBloqueo.Transaccion);
     }
 }
예제 #2
0
        /// <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);
        }