int nondet_int ();
void lock (void);
void unlock (void);

int read_input (void)
{
  return nondet_int ();
}

void lock1 (void)
{
  int in_irq;
  int buf[10];
  int i;
  
  
  if (in_irq) 
    lock ();
  
  for (i = 0; i < 5; i++)
    buf [i] = read_input ();

  if (in_irq)
    lock ();
}


void lock2 (void) 
{
  int request, old, total;
  
  request = 0;
  do {
    lock ();
    old = total;
    request = read_input ();
    if (request)
      {
	unlock ();
	total = total + 1;       
      }
  } while (total != old);

  unlock ();
}



