view a13/smv/test5.smv @ 332:6f3636fbc481

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 12 Mar 2023 22:49:59 +0900
parents 0e8a0e50ed26
children
line wrap: on
line source

MODULE main
 VAR
   semaphore : boolean;
   proc1     : process user(semaphore);
   proc2     : process user(semaphore);
 ASSIGN
   init(semaphore) := FALSE;
MODULE user(semaphore)
 VAR
   state : {idle, entering, critical, exiting}; 
ASSIGN
  init(state) := idle;
  next(state) :=
  case
  state = idle : {idle, entering}; state = entering & !semaphore : critical;
       state = critical
       state = exiting
       TRUE
     esac;
   next(semaphore) :=
     case
       state = entering : TRUE;
       state = exiting  : FALSE;
       TRUE             : semaphore;
     esac;
 FAIRNESS
  running