diff options
author | Alaa Eddine Elamri <alaeddine.elamri@bareos.com> | 2022-10-21 17:55:09 +0300 |
---|---|---|
committer | Andreas Rogge <andreas.rogge@bareos.com> | 2022-11-07 19:16:28 +0300 |
commit | 7f903c52bf86c154de67d6d0b4058d0fc797351c (patch) | |
tree | 2e8e5d5d7028dc33ee0be63aebf7c0e0b774f68e /core | |
parent | 26fe7f497a9361d871d76eff464a8c8513c8b2a8 (diff) |
jcr_private: FDJobStatus from volatile to atomic
Diffstat (limited to 'core')
-rw-r--r-- | core/src/dird/backup.cc | 4 | ||||
-rw-r--r-- | core/src/dird/dir_plugins.cc | 2 | ||||
-rw-r--r-- | core/src/dird/jcr_private.h | 2 | ||||
-rw-r--r-- | core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc | 5 |
4 files changed, 7 insertions, 6 deletions
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc index 3174cd55e..b6a0d75ca 100644 --- a/core/src/dird/backup.cc +++ b/core/src/dird/backup.cc @@ -683,12 +683,12 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout) * the SD despool. */ Dmsg5(100, "cancel=%d fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", jcr->IsCanceled(), - fd_ok, jcr->impl->FDJobStatus, jcr->JobStatus, + fd_ok, jcr->impl->FDJobStatus.load(), jcr->JobStatus, jcr->impl->SDJobStatus.load()); if (jcr->IsCanceled() || (!jcr->impl->res.job->RescheduleIncompleteJobs && !fd_ok)) { Dmsg4(100, "fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", fd_ok, - jcr->impl->FDJobStatus, jcr->JobStatus, + jcr->impl->FDJobStatus.load(), jcr->JobStatus, jcr->impl->SDJobStatus.load()); CancelStorageDaemonJob(jcr); } diff --git a/core/src/dird/dir_plugins.cc b/core/src/dird/dir_plugins.cc index 869c86754..6c6637796 100644 --- a/core/src/dird/dir_plugins.cc +++ b/core/src/dird/dir_plugins.cc @@ -682,7 +682,7 @@ static bRC bareosGetValue(PluginContext* ctx, brDirVariable var, void* value) case bDirVarFDJobStatus: *((int*)value) = jcr->impl->FDJobStatus; Dmsg1(debuglevel, "dir-plugin: return bDirVarFDJobStatus=%c\n", - jcr->impl->FDJobStatus); + jcr->impl->FDJobStatus.load()); break; case bDirVarSDJobStatus: *((int*)value) = jcr->impl->SDJobStatus; diff --git a/core/src/dird/jcr_private.h b/core/src/dird/jcr_private.h index ecc16c49d..d72e09e17 100644 --- a/core/src/dird/jcr_private.h +++ b/core/src/dird/jcr_private.h @@ -112,7 +112,7 @@ struct JobControlRecordPrivate { uint64_t SDJobBytes{}; /**< Number of bytes processed this job */ uint32_t SDErrors{}; /**< Number of non-fatal errors */ std::atomic<int32_t> SDJobStatus{}; /**< Storage Job Status */ - volatile int32_t FDJobStatus{}; /**< File daemon Job Status */ + std::atomic<int32_t> FDJobStatus{}; /**< File daemon Job Status */ uint32_t DumpLevel{}; /**< Dump level when doing a NDMP backup */ uint32_t ExpectedFiles{}; /**< Expected restore files */ uint32_t MediaId{}; /**< DB record IDs associated with this job */ diff --git a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc index 8677b40a9..e879a1f31 100644 --- a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc +++ b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc @@ -332,9 +332,10 @@ static inline int NdmpWaitForJobTermination(JobControlRecord* jcr) * so that we let the SD despool. */ Dmsg4(100, "cancel=%d FDJS=%d JS=%d SDJS=%d\n", jcr->IsCanceled(), - jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus.load()); + jcr->impl->FDJobStatus.load(), jcr->JobStatus, + jcr->impl->SDJobStatus.load()); if (jcr->IsCanceled() || (!jcr->impl->res.job->RescheduleIncompleteJobs)) { - Dmsg3(100, "FDJS=%d JS=%d SDJS=%d\n", jcr->impl->FDJobStatus, + Dmsg3(100, "FDJS=%d JS=%d SDJS=%d\n", jcr->impl->FDJobStatus.load(), jcr->JobStatus, jcr->impl->SDJobStatus.load()); CancelStorageDaemonJob(jcr); } |