This section specifies which policies specified by pragma Locking_Policy are supported on which platforms.
GNAT supports the standard
Ceiling_Locking policy, and the
Ceiling_Locking is supported on all platforms if the operating system
supports it. In particular,
Ceiling_Locking is not supported on
Inheritance_Locking is supported on
Darwin (Mac OS X),
Concurrent_Readers_Locking is supported on Linux.
Ceiling_Locking on Linux:
If the process is running as ’root’, ceiling locking is used.
If the capabilities facility is installed
("sudo apt-get –assume-yes install libcap-dev" on Ubuntu,
and the program is linked against that library
and the executable file has the cap_sys_nice capability
("sudo /sbin/setcap cap_sys_nice=ep executable_file_name"),
then ceiling locking is used.
Ceiling_Locking policy is ignored.