then
Processing_Actions (Decl);
- -- Simple protected objects which use type System.Tasking.
+ -- Simple protected objects which use the type System.Tasking.
-- Protected_Objects.Protection to manage their locks should
-- be treated as controlled since they require manual cleanup.
+ -- but not for restricted run-time libraries (Ravenscar), see
+ -- also Cleanup_Protected_Object.
+
-- The only exception is illustrated in the following example:
-- package Pkg is
elsif Ekind (Obj_Id) = E_Variable
and then not In_Library_Level_Package_Body (Obj_Id)
and then Has_Simple_Protected_Object (Obj_Typ)
+ and then not Restricted_Profile
then
Processing_Actions (Decl, Is_Protected => True);
end if;
then
return True;
- -- Simple protected objects which use type System.Tasking.
+ -- Simple protected objects which use the type System.Tasking.
-- Protected_Objects.Protection to manage their locks should be
- -- treated as controlled since they require manual cleanup.
+ -- treated as controlled since they require manual cleanup, but
+ -- not for restricted run-time libraries (Ravenscar), see also
+ -- Cleanup_Protected_Object in Exp_Ch7.
+
-- The only exception is illustrated in the following example:
-- package Pkg is
elsif Ekind (Obj_Id) = E_Variable
and then not In_Library_Level_Package_Body (Obj_Id)
and then Has_Simple_Protected_Object (Obj_Typ)
+ and then not Restricted_Profile
then
return True;
end if;