add mutex

Offering: openGaussDev

More detail: 可选

Match-id-7fbecffd865c0ed00fe0b6e8b74bf944e8ba6b01
This commit is contained in:
openGaussDev 2022-03-04 15:46:06 +08:00 committed by yanghao
parent 8f5757a3f1
commit 35dfd94bc2
1 changed files with 2 additions and 0 deletions

View File

@ -183,6 +183,7 @@ HadrRTOAndRPOData *HadrGetRTOStat(uint32 *num)
for (i = 0; i < g_instance.attr.attr_storage.max_wal_senders; i++) {
/* use volatile pointer to prevent code rearrangement */
volatile WalSnd *walsnd = &t_thrd.walsender_cxt.WalSndCtl->walsnds[i];
SpinLockAcquire(&walsnd->mutex);
if (walsnd->pid != 0 && ((strstr(g_instance.rto_cxt.rto_standby_data[i].id, "hadr_") != NULL) ||
(strstr(g_instance.rto_cxt.rto_standby_data[i].id, "hass") != NULL))) {
char *standby_names = (char *)(result[readWalSnd].id);
@ -219,6 +220,7 @@ HadrRTOAndRPOData *HadrGetRTOStat(uint32 *num)
result[readWalSnd].target_rpo = u_sess->attr.attr_storage.hadr_recovery_point_target;
readWalSnd++;
}
SpinLockRelease(&walsnd->mutex);
}
*num = readWalSnd;