1. package body Barrier_Type is 
  2.  
  3.    ------------- 
  4.    -- Barrier -- 
  5.    ------------- 
  6.  
  7.    protected body Barrier is 
  8.  
  9.       ---------- 
  10.       -- Wait -- 
  11.       ---------- 
  12.  
  13.       entry Wait when Opened is 
  14.  
  15.       begin 
  16.          Opened := Wait'Count > 0; 
  17.       end Wait; 
  18.  
  19.       ---------- 
  20.       -- Open -- 
  21.       ---------- 
  22.  
  23.       procedure Open is 
  24.  
  25.       begin 
  26.         Opened := True; 
  27.       end Open; 
  28.  
  29.       ----------- 
  30.       -- Close -- 
  31.       ----------- 
  32.  
  33.       procedure Close is 
  34.  
  35.       begin 
  36.         Opened := False; 
  37.       end Close; 
  38.  
  39.    end Barrier; 
  40.  
  41. end Barrier_Type;