summaryrefslogtreecommitdiff
path: root/src/mongo/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/platform')
-rw-r--r--src/mongo/platform/SConscript2
-rw-r--r--src/mongo/platform/atomic_word.h11
-rw-r--r--src/mongo/platform/decimal128.cpp23
-rw-r--r--src/mongo/platform/decimal128.h15
-rw-r--r--src/mongo/platform/process_id.cpp8
5 files changed, 23 insertions, 36 deletions
diff --git a/src/mongo/platform/SConscript b/src/mongo/platform/SConscript
index d1ebcb91406..71a0a57772d 100644
--- a/src/mongo/platform/SConscript
+++ b/src/mongo/platform/SConscript
@@ -96,7 +96,6 @@ visibility_test1 = env.Program(
AIB_COMPONENTS_EXTRA=[
"unittests",
"tests",
- "first-quarter-unittests",
],
)
env.RegisterTest("$UNITTEST_LIST", visibility_test1[0])
@@ -116,7 +115,6 @@ visibility_test2 = env.Program(
AIB_COMPONENTS_EXTRA=[
"unittests",
"tests",
- "first-quarter-unittests",
],
)
env.RegisterTest("$UNITTEST_LIST", visibility_test2[0])
diff --git a/src/mongo/platform/atomic_word.h b/src/mongo/platform/atomic_word.h
index 5a7d38ccca7..c277497b15c 100644
--- a/src/mongo/platform/atomic_word.h
+++ b/src/mongo/platform/atomic_word.h
@@ -87,7 +87,9 @@ public:
}
/**
- * Gets the current value of this AtomicWord using relaxed memory order.
+ * Gets the current value of this AtomicWord.
+ *
+ * Has relaxed semantics.
*/
WordType loadRelaxed() const {
return _value.load(std::memory_order_relaxed);
@@ -101,13 +103,6 @@ public:
}
/**
- * Sets the value of this AtomicWord to "newValue" using relaxed memory order.
- */
- void storeRelaxed(WordType newValue) {
- _value.store(newValue, std::memory_order_relaxed);
- }
-
- /**
* Atomically swaps the current value of this with "newValue".
*
* Returns the old value.
diff --git a/src/mongo/platform/decimal128.cpp b/src/mongo/platform/decimal128.cpp
index ef785025b17..0d12479f70a 100644
--- a/src/mongo/platform/decimal128.cpp
+++ b/src/mongo/platform/decimal128.cpp
@@ -827,33 +827,36 @@ Decimal128 Decimal128::exponential(std::uint32_t* signalingFlags, RoundingMode r
return Decimal128{libraryTypeToValue(current)};
}
-Decimal128 Decimal128::naturalLogarithm(RoundingMode roundMode) const {
+Decimal128 Decimal128::logarithm(RoundingMode roundMode) const {
std::uint32_t throwAwayFlag = 0;
- return naturalLogarithm(&throwAwayFlag, roundMode);
+ return logarithm(&throwAwayFlag, roundMode);
}
-Decimal128 Decimal128::naturalLogarithm(std::uint32_t* signalingFlags,
- RoundingMode roundMode) const {
+Decimal128 Decimal128::logarithm(std::uint32_t* signalingFlags, RoundingMode roundMode) const {
BID_UINT128 current = decimal128ToLibraryType(_value);
current = bid128_log(current, roundMode, signalingFlags);
return Decimal128{libraryTypeToValue(current)};
}
-Decimal128 Decimal128::logarithm(const Decimal128& base, RoundingMode roundMode) const {
+Decimal128 Decimal128::logarithm(const Decimal128& other, RoundingMode roundMode) const {
std::uint32_t throwAwayFlag = 0;
- if (base.isEqual(Decimal128(2))) {
+ if (other.isEqual(Decimal128(2))) {
BID_UINT128 current = decimal128ToLibraryType(_value);
current = bid128_log2(current, roundMode, &throwAwayFlag);
return Decimal128{libraryTypeToValue(current)};
}
- if (base.isEqual(Decimal128(10))) {
+ if (other.isEqual(Decimal128(10))) {
BID_UINT128 current = decimal128ToLibraryType(_value);
current = bid128_log10(current, roundMode, &throwAwayFlag);
return Decimal128{libraryTypeToValue(current)};
}
- // Logarithm with a generic base is equivalent to `ln(input) / ln(base)`.
- return naturalLogarithm(&throwAwayFlag, roundMode)
- .divide(base.naturalLogarithm(&throwAwayFlag, roundMode));
+ return logarithm(other, &throwAwayFlag);
+}
+
+Decimal128 Decimal128::logarithm(const Decimal128& other,
+ std::uint32_t* signalingFlags,
+ RoundingMode roundMode) const {
+ return logarithm(signalingFlags, roundMode).divide(other);
}
Decimal128 Decimal128::modulo(const Decimal128& other) const {
diff --git a/src/mongo/platform/decimal128.h b/src/mongo/platform/decimal128.h
index 06a78352546..64306df0e0c 100644
--- a/src/mongo/platform/decimal128.h
+++ b/src/mongo/platform/decimal128.h
@@ -467,14 +467,13 @@ public:
Decimal128 exponential(RoundingMode roundMode = kRoundTiesToEven) const;
Decimal128 exponential(std::uint32_t* signalingFlags,
RoundingMode roundMode = kRoundTiesToEven) const;
- Decimal128 naturalLogarithm(RoundingMode roundMode = kRoundTiesToEven) const;
- Decimal128 naturalLogarithm(std::uint32_t* signalingFlags,
- RoundingMode roundMode = kRoundTiesToEven) const;
- // Calculate the logarithm with the given `base`, using this number as input. Uses fast paths
- // for base 2 and 10.
- // TODO SERVER-91935 convert `logarithm` and others to static methods for a more clear
- // interface.
- Decimal128 logarithm(const Decimal128& base, RoundingMode roundMode = kRoundTiesToEven) const;
+ Decimal128 logarithm(RoundingMode roundMode = kRoundTiesToEven) const;
+ Decimal128 logarithm(std::uint32_t* signalingFlags,
+ RoundingMode roundMode = kRoundTiesToEven) const;
+ Decimal128 logarithm(const Decimal128& other, RoundingMode roundMode = kRoundTiesToEven) const;
+ Decimal128 logarithm(const Decimal128& other,
+ std::uint32_t* signalingFlags,
+ RoundingMode roundMode = kRoundTiesToEven) const;
Decimal128 modulo(const Decimal128& other) const;
Decimal128 modulo(const Decimal128& other, std::uint32_t* signalingFlags) const;
diff --git a/src/mongo/platform/process_id.cpp b/src/mongo/platform/process_id.cpp
index eff158ca41e..cff6af7e2db 100644
--- a/src/mongo/platform/process_id.cpp
+++ b/src/mongo/platform/process_id.cpp
@@ -40,10 +40,6 @@
#include <sys/types.h>
#endif
-#ifdef __FreeBSD__
-#include <pthread_np.h>
-#endif
-
#include <iostream>
#include <limits>
#include <sstream>
@@ -77,10 +73,6 @@ inline NativeProcessId getCurrentNativeThreadId() {
invariant(::pthread_threadid_np(NULL, &tid) == 0);
return tid;
}
-#elif __FreeBSD__
-inline NativeProcessId getCurrentNativeThreadId() {
- return pthread_getthreadid_np();
-}
#else
inline NativeProcessId getCurrentNativeThreadId() {
return ::syscall(SYS_gettid);