Ada 95 Quality and Style Guide Chapter 5

Chapter 5: Programming Practices - TOC - 5.9 ERRONEOUS EXECUTION AND BOUNDED ERRORS

5.9.9 Protected Objects

guideline

  • Do not invoke a potentially blocking operation within a protected entry, a protected procedure, or a protected function.

  • rationale

    The Ada Reference Manual (1995, §9.5.1) lists the potentially blocking operations:

    - Select statement
    - Accept statement
    - Entry-call statement
    - Delay statement
    - Abort statement
    - Task creation or activation
    - External call on a protected subprogram (or an external requeue) with the same target object as that of the protected action
    - Call on a subprogram whose body contains a potentially blocking operation

    Invoking any of these potentially blocking operations could lead either to a bounded error being detected or to a deadlock situation. In the case of bounded error, the exception Program_Error is raised. In addition, avoid calling routines within a protected entry, procedure, or function that could directly or indirectly invoke operating system primitives or similar operations that can cause blocking that is not visible to the Ada run-time system.


    < Previous Page Search Contents Index Next Page >
    1 2 3 4 5 6 7 8 9 10 11
    TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC
    Appendix References Bibliography