Mercurial > hg > CbC > CbC_gcc
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 |