A.18.28 The Generic Package Containers.Unbounded_Synchronized_Queues
Static Semantics
The language-defined generic package Containers.Unbounded_Synchronized_Queues 
provides type Queue, which implements the interface type Containers.Synchronized_Queue_Interfaces.Queue.
with System;
with Ada.Containers.Synchronized_Queue_Interfaces;
generic
   with package Queue_Interfaces 
is new Ada.Containers.Synchronized_Queue_Interfaces (<>);
   Default_Ceiling : System.Any_Priority := System.Priority'Last;
package Ada.Containers.Unbounded_Synchronized_Queues 
is
   pragma Preelaborate(Unbounded_Synchronized_Queues);
 
   package Implementation is
      ... -- not specified by the language
   end Implementation;
   protected type Queue
        (Ceiling : System.Any_Priority := Default_Ceiling)
           
with Priority => Ceiling 
is
        new Queue_Interfaces.Queue 
with 
      overriding
      entry Enqueue (New_Item : 
in Queue_Interfaces.Element_Type);
      
overriding
      entry Dequeue (Element : 
out Queue_Interfaces.Element_Type);
 
      overriding
      function Current_Use 
return Count_Type;
      
overriding
      function Peak_Use 
return Count_Type;
 
   private
      ... -- not specified by the language
   end Queue;
private
   ... -- not specified by the language
end Ada.Containers.Unbounded_Synchronized_Queues;
 The type Queue is used to represent task-safe queues.
 The capacity for instances of type Queue is unbounded.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe