diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
| commit | 4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch) | |
| tree | 1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/platform | |
| parent | aa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff) | |
| parent | 8f0827553e09872941945a093b647a4211a9db7f (diff) | |
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0'
with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/platform')
| -rw-r--r-- | src/mongo/platform/SConscript | 2 | ||||
| -rw-r--r-- | src/mongo/platform/atomic_word.h | 11 | ||||
| -rw-r--r-- | src/mongo/platform/decimal128.cpp | 23 | ||||
| -rw-r--r-- | src/mongo/platform/decimal128.h | 15 | ||||
| -rw-r--r-- | src/mongo/platform/process_id.cpp | 8 |
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); |
