1. with System.Multiprocessors; use System.Multiprocessors; 
  2.  
  3. package CPU_Counter is 
  4.  
  5.    CPUs_Potentially_Available : Boolean := True; 
  6.  
  7.    protected CPU_Count is 
  8.       procedure Try_Check_One_Out (Got_One : out Boolean); 
  9.    private 
  10.       Available_CPUs : CPU := Number_Of_CPUs; 
  11.    end CPU_Count; 
  12.  
  13. end CPU_Counter;