This is covered in the Parallelism section (see
2.3)
as the driving reason for adding it was safe parallelism, but it is more
generally useful, for timing analysis or deadlock avoidance, for example,
or simply documenting behaviour that some coding standards would ask
for in a comment.
Blocking was already disallowed for protected types,
but that wasn't detected so bounded errors were possible. Applying
pragma
Detect_Blocking causes a run-time check, but this has a performance
overhead, whereas applying aspect
Nonblocking
to a protected type declaration causes a check at compile-time.