@@ -288,13 +288,10 @@ CheckpointerMain(void)
288
288
/* Warn any waiting backends that the checkpoint failed. */
289
289
if (ckpt_active )
290
290
{
291
- /* use volatile pointer to prevent code rearrangement */
292
- volatile CheckpointerShmemStruct * cps = CheckpointerShmem ;
293
-
294
- SpinLockAcquire (& cps -> ckpt_lck );
295
- cps -> ckpt_failed ++ ;
296
- cps -> ckpt_done = cps -> ckpt_started ;
297
- SpinLockRelease (& cps -> ckpt_lck );
291
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
292
+ CheckpointerShmem -> ckpt_failed ++ ;
293
+ CheckpointerShmem -> ckpt_done = CheckpointerShmem -> ckpt_started ;
294
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
298
295
299
296
ckpt_active = false;
300
297
}
@@ -428,9 +425,6 @@ CheckpointerMain(void)
428
425
bool ckpt_performed = false;
429
426
bool do_restartpoint ;
430
427
431
- /* use volatile pointer to prevent code rearrangement */
432
- volatile CheckpointerShmemStruct * cps = CheckpointerShmem ;
433
-
434
428
/*
435
429
* Check if we should perform a checkpoint or a restartpoint. As a
436
430
* side-effect, RecoveryInProgress() initializes TimeLineID if
@@ -443,11 +437,11 @@ CheckpointerMain(void)
443
437
* checkpoint we should perform, and increase the started-counter
444
438
* to acknowledge that we've started a new checkpoint.
445
439
*/
446
- SpinLockAcquire (& cps -> ckpt_lck );
447
- flags |= cps -> ckpt_flags ;
448
- cps -> ckpt_flags = 0 ;
449
- cps -> ckpt_started ++ ;
450
- SpinLockRelease (& cps -> ckpt_lck );
440
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
441
+ flags |= CheckpointerShmem -> ckpt_flags ;
442
+ CheckpointerShmem -> ckpt_flags = 0 ;
443
+ CheckpointerShmem -> ckpt_started ++ ;
444
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
451
445
452
446
/*
453
447
* The end-of-recovery checkpoint is a real checkpoint that's
@@ -505,9 +499,9 @@ CheckpointerMain(void)
505
499
/*
506
500
* Indicate checkpoint completion to any waiting backends.
507
501
*/
508
- SpinLockAcquire (& cps -> ckpt_lck );
509
- cps -> ckpt_done = cps -> ckpt_started ;
510
- SpinLockRelease (& cps -> ckpt_lck );
502
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
503
+ CheckpointerShmem -> ckpt_done = CheckpointerShmem -> ckpt_started ;
504
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
511
505
512
506
if (ckpt_performed )
513
507
{
@@ -957,8 +951,6 @@ CheckpointerShmemInit(void)
957
951
void
958
952
RequestCheckpoint (int flags )
959
953
{
960
- /* use volatile pointer to prevent code rearrangement */
961
- volatile CheckpointerShmemStruct * cps = CheckpointerShmem ;
962
954
int ntries ;
963
955
int old_failed ,
964
956
old_started ;
@@ -992,13 +984,13 @@ RequestCheckpoint(int flags)
992
984
* a "stronger" request by another backend. The flag senses must be
993
985
* chosen to make this work!
994
986
*/
995
- SpinLockAcquire (& cps -> ckpt_lck );
987
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
996
988
997
- old_failed = cps -> ckpt_failed ;
998
- old_started = cps -> ckpt_started ;
999
- cps -> ckpt_flags |= flags ;
989
+ old_failed = CheckpointerShmem -> ckpt_failed ;
990
+ old_started = CheckpointerShmem -> ckpt_started ;
991
+ CheckpointerShmem -> ckpt_flags |= flags ;
1000
992
1001
- SpinLockRelease (& cps -> ckpt_lck );
993
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
1002
994
1003
995
/*
1004
996
* Send signal to request checkpoint. It's possible that the checkpointer
@@ -1046,9 +1038,9 @@ RequestCheckpoint(int flags)
1046
1038
/* Wait for a new checkpoint to start. */
1047
1039
for (;;)
1048
1040
{
1049
- SpinLockAcquire (& cps -> ckpt_lck );
1050
- new_started = cps -> ckpt_started ;
1051
- SpinLockRelease (& cps -> ckpt_lck );
1041
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
1042
+ new_started = CheckpointerShmem -> ckpt_started ;
1043
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
1052
1044
1053
1045
if (new_started != old_started )
1054
1046
break ;
@@ -1064,10 +1056,10 @@ RequestCheckpoint(int flags)
1064
1056
{
1065
1057
int new_done ;
1066
1058
1067
- SpinLockAcquire (& cps -> ckpt_lck );
1068
- new_done = cps -> ckpt_done ;
1069
- new_failed = cps -> ckpt_failed ;
1070
- SpinLockRelease (& cps -> ckpt_lck );
1059
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
1060
+ new_done = CheckpointerShmem -> ckpt_done ;
1061
+ new_failed = CheckpointerShmem -> ckpt_failed ;
1062
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
1071
1063
1072
1064
if (new_done - new_started >= 0 )
1073
1065
break ;
@@ -1368,15 +1360,13 @@ UpdateSharedMemoryConfig(void)
1368
1360
bool
1369
1361
FirstCallSinceLastCheckpoint (void )
1370
1362
{
1371
- /* use volatile pointer to prevent code rearrangement */
1372
- volatile CheckpointerShmemStruct * cps = CheckpointerShmem ;
1373
1363
static int ckpt_done = 0 ;
1374
1364
int new_done ;
1375
1365
bool FirstCall = false;
1376
1366
1377
- SpinLockAcquire (& cps -> ckpt_lck );
1378
- new_done = cps -> ckpt_done ;
1379
- SpinLockRelease (& cps -> ckpt_lck );
1367
+ SpinLockAcquire (& CheckpointerShmem -> ckpt_lck );
1368
+ new_done = CheckpointerShmem -> ckpt_done ;
1369
+ SpinLockRelease (& CheckpointerShmem -> ckpt_lck );
1380
1370
1381
1371
if (new_done != ckpt_done )
1382
1372
FirstCall = true;
0 commit comments