| -- Copyright 2020-2021 Free Software Foundation, Inc. |
| -- |
| -- This program is free software; you can redistribute it and/or modify |
| -- it under the terms of the GNU General Public License as published by |
| -- the Free Software Foundation; either version 3 of the License, or |
| -- (at your option) any later version. |
| -- |
| -- This program is distributed in the hope that it will be useful, |
| -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
| -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| -- GNU General Public License for more details. |
| -- |
| -- You should have received a copy of the GNU General Public License |
| -- along with this program. If not, see <http://www.gnu.org/licenses/>. |
| |
| with Pkg; use Pkg; |
| with System; |
| |
| procedure Prot is |
| |
| protected type Obj_Type |
| (Ceiling_Priority: System.Priority := System.Priority'Last) |
| with Priority => Ceiling_Priority |
| is |
| procedure Set (V : Integer); |
| function Get return Integer; |
| private |
| Local : Integer := 0; |
| end Obj_Type; |
| |
| protected body Obj_Type is |
| procedure Set (V : Integer) is |
| begin |
| Local := V; -- STOP |
| end Set; |
| |
| function Get return Integer is |
| begin |
| return Local; |
| end Get; |
| end Obj_Type; |
| |
| Obj : Obj_Type; |
| begin |
| Obj.Set (5); |
| Pkg.Do_Nothing(Obj'Address); |
| end Prot; |