1. -- 
  2. --  Uwe R. Zimmer, Australia, September 2011 
  3. -- 
  4.  
  5. generic 
  6.    type Id_Range is range <>; 
  7.  
  8. package Id_Generator_Concurrent is 
  9.  
  10.    protected Generator is 
  11.  
  12.       procedure Read_Id (Id : out Id_Range); 
  13.  
  14.    private 
  15.       Current_Id   : Id_Range := Id_Range'First; 
  16.       Last_Id_Gone : Boolean  := False; 
  17.    end Generator; 
  18.  
  19.    Out_Of_Ids : exception; 
  20.  
  21. end Id_Generator_Concurrent;