Skip to content

Commit 997ae76

Browse files
authored
Merge pull request ceph#62563 from tchaikov/osd-atomic
osd: replace deprecated atomic_store with std::atomic<shared_ptr> Reviewed-by: Matan Breizman <[email protected]>
2 parents 3431ac4 + 43d8ca4 commit 997ae76

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/osd/OSD.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,13 +1669,24 @@ class OSD : public Dispatcher,
16691669
protected:
16701670

16711671
// -- osd map --
1672-
// TODO: switch to std::atomic<OSDMapRef> when C++20 will be available.
1673-
OSDMapRef _osdmap;
1672+
#ifdef __cpp_lib_atomic_shared_ptr
1673+
std::atomic<OSDMapRef> _osdmap;
1674+
#else
1675+
OSDMapRef _osdmap;
1676+
#endif
16741677
void set_osdmap(OSDMapRef osdmap) {
1678+
#ifdef __cpp_lib_atomic_shared_ptr
1679+
_osdmap.store(osdmap);
1680+
#else
16751681
std::atomic_store(&_osdmap, osdmap);
1682+
#endif
16761683
}
16771684
OSDMapRef get_osdmap() const {
1685+
#ifdef __cpp_lib_atomic_shared_ptr
1686+
return _osdmap.load();
1687+
#else
16781688
return std::atomic_load(&_osdmap);
1689+
#endif
16791690
}
16801691
epoch_t get_osdmap_epoch() const {
16811692
// XXX: performance?

0 commit comments

Comments
 (0)