ADA obtener cantidad de tareas esperando

ADA obtener cantidad de tareas esperando

de Enrique Javier Cardozo Muraña -
Número de respuestas: 2

Buenas, hay alguna sentencia en ADA para saber cuantas tareas (tamaño de la cola) tengo esperando por un encuentro?

En respuesta a Enrique Javier Cardozo Muraña

Re: ADA obtener cantidad de tareas esperando

de Gustavo Brown -

Si, podes usar Entrada'Count  para saber cuantas tareas están esperando por un encuentro con una entrada dada.

Esa construcción es útil para utilizar dentro de un Select en una guarda, para determinar si abrir o cerrar una guarda dependiendo si hay encuentros pendientes en alguna entrada.

Normalmente se usa para implementar la prioridad. 

Ejemplo: suponete que tenes dos entradas EntradaA y EntradaB y querés darle prioridad a EntradaA sobre EntradaB, entonces pondrías:

select
   when EntradaA'count = 0 =>
      accept EntradaB
            ......
  or  accept EntradaA
            ......
endSelect

En el ejemplo solamente dejas abierta EntradaB cuando, en el momento de evaluar las guardas, ninguna tarea quiere un encuentro con entradaA.

Saludos,
   Gustavo