comparison gcc/ada/libgnarl/s-tasren.adb @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
4 -- -- 4 -- --
5 -- S Y S T E M . T A S K I N G . R E N D E Z V O U S -- 5 -- S Y S T E M . T A S K I N G . R E N D E Z V O U S --
6 -- -- 6 -- --
7 -- B o d y -- 7 -- B o d y --
8 -- -- 8 -- --
9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. -- 9 -- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
10 -- -- 10 -- --
11 -- GNARL is free software; you can redistribute it and/or modify it under -- 11 -- GNARL is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- -- 12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- -- 13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
161 end if; 161 end if;
162 162
163 STPO.Write_Lock (Self_Id); 163 STPO.Write_Lock (Self_Id);
164 164
165 if not Self_Id.Callable then 165 if not Self_Id.Callable then
166 pragma Assert (Self_Id.Pending_ATC_Level = 0); 166 pragma Assert (Self_Id.Pending_ATC_Level = Level_Completed_Task);
167 167
168 pragma Assert (Self_Id.Pending_Action); 168 pragma Assert (Self_Id.Pending_Action);
169 169
170 STPO.Unlock (Self_Id); 170 STPO.Unlock (Self_Id);
171 171
203 203
204 pragma Assert (Self_Id.Open_Accepts = null); 204 pragma Assert (Self_Id.Open_Accepts = null);
205 205
206 if Self_Id.Common.Call /= null then 206 if Self_Id.Common.Call /= null then
207 Caller := Self_Id.Common.Call.Self; 207 Caller := Self_Id.Common.Call.Self;
208
209 pragma Assert (Caller.ATC_Nesting_Level > Level_No_ATC_Occurring);
210
208 Uninterpreted_Data := 211 Uninterpreted_Data :=
209 Caller.Entry_Calls (Caller.ATC_Nesting_Level).Uninterpreted_Data; 212 Caller.Entry_Calls (Caller.ATC_Nesting_Level).Uninterpreted_Data;
210 else 213 else
211 -- Case of an aborted task 214 -- Case of an aborted task
212 215
245 end if; 248 end if;
246 249
247 STPO.Write_Lock (Self_Id); 250 STPO.Write_Lock (Self_Id);
248 251
249 if not Self_Id.Callable then 252 if not Self_Id.Callable then
250 pragma Assert (Self_Id.Pending_ATC_Level = 0); 253 pragma Assert (Self_Id.Pending_ATC_Level = Level_Completed_Task);
251 254
252 pragma Assert (Self_Id.Pending_Action); 255 pragma Assert (Self_Id.Pending_Action);
253 256
254 STPO.Unlock (Self_Id); 257 STPO.Unlock (Self_Id);
255 258
736 end if; 739 end if;
737 740
738 STPO.Write_Lock (Self_Id); 741 STPO.Write_Lock (Self_Id);
739 742
740 if not Self_Id.Callable then 743 if not Self_Id.Callable then
741 pragma Assert (Self_Id.Pending_ATC_Level = 0); 744 pragma Assert (Self_Id.Pending_ATC_Level = Level_Completed_Task);
742 745
743 pragma Assert (Self_Id.Pending_Action); 746 pragma Assert (Self_Id.Pending_Action);
744 747
745 STPO.Unlock (Self_Id); 748 STPO.Unlock (Self_Id);
746 749
891 -- aborted. We cannot be in an async. select, since that is not 894 -- aborted. We cannot be in an async. select, since that is not
892 -- legal, so the abort must be of the entire task. Therefore, 895 -- legal, so the abort must be of the entire task. Therefore,
893 -- we do not need to cancel the terminate alternative. The 896 -- we do not need to cancel the terminate alternative. The
894 -- cleanup will be done in Complete_Master. 897 -- cleanup will be done in Complete_Master.
895 898
896 pragma Assert (Self_Id.Pending_ATC_Level = 0); 899 pragma Assert
900 (Self_Id.Pending_ATC_Level = Level_Completed_Task);
897 pragma Assert (Self_Id.Awake_Count = 0); 901 pragma Assert (Self_Id.Awake_Count = 0);
898 902
899 STPO.Unlock (Self_Id); 903 STPO.Unlock (Self_Id);
900 904
901 if Single_Lock then 905 if Single_Lock then
1393 end if; 1397 end if;
1394 1398
1395 STPO.Write_Lock (Self_Id); 1399 STPO.Write_Lock (Self_Id);
1396 1400
1397 if not Self_Id.Callable then 1401 if not Self_Id.Callable then
1398 pragma Assert (Self_Id.Pending_ATC_Level = 0); 1402 pragma Assert (Self_Id.Pending_ATC_Level = Level_Completed_Task);
1399 1403
1400 pragma Assert (Self_Id.Pending_Action); 1404 pragma Assert (Self_Id.Pending_Action);
1401 1405
1402 STPO.Unlock (Self_Id); 1406 STPO.Unlock (Self_Id);
1403 1407