1. 18 Nov, 2021 2 commits
    • Alex Hornby's avatar
      add a libffi manifest · 094faa5f
      Alex Hornby authored
      Summary: libffi is needed for getdeps python 3.8 update
      
      Reviewed By: krallin
      
      Differential Revision: D32459310
      
      fbshipit-source-id: 6515eed088fb6de0091c2348b5732d1b635113e0
      094faa5f
    • Chad Austin's avatar
      download PCRE from sourceforge instead: ftp.pcre.org is dead · cbea6f12
      Chad Austin authored
      Summary:
      ftp.pcre.org is dead. We are currently migrating from PCRE1 to
      PCRE2. In the meantime, download from SourceForge instead like we do
      with Boost.
      
      Reviewed By: akushner, xavierd
      
      Differential Revision: D32520283
      
      fbshipit-source-id: 9fda6930d7d8b677786a43419c4c0dc6289305f1
      cbea6f12
  2. 17 Nov, 2021 4 commits
    • Andrew Gallagher's avatar
      Fix some `-Wundef` warnings for `FOLLY_SANITIZE` · 4ea1b5a3
      Andrew Gallagher authored
      Summary:
      In the vast majority of cases in fbcode, the sanitizer macros are checked with
      `#ifdef`, so do the same in some places to fix `-Wundef`.
      
      Reviewed By: luciang
      
      Differential Revision: D32501662
      
      fbshipit-source-id: 123e22d78476c9db0e328ccb01a734a06a163594
      4ea1b5a3
    • Andrew Gallagher's avatar
      Always define `FOLLY_USE_LIBCPP` to `0`/`1` · 3c362348
      Andrew Gallagher authored
      Summary:
      Users may set `FOLLY_USE_LIBCPP` or `FOLLY_USE_LIBSTDCPP` to `0` or
      `1`, so make sure everything checks it via `#if`.
      
      Reviewed By: luciang
      
      Differential Revision: D32496561
      
      fbshipit-source-id: 5eee660b540af0bf1eaee4949576acf11c9be8d0
      3c362348
    • Yedidya Feldblum's avatar
      tweak atomic-fetch-bit-op mask casts · d43c44b8
      Yedidya Feldblum authored
      Summary: Cast the result of shifts to the integer type parameter, rather than the shift width.
      
      Reviewed By: aary, luciang
      
      Differential Revision: D32160950
      
      fbshipit-source-id: 0100a1a92c48bfa1cd957cf42ed84d01302ea4f7
      d43c44b8
    • Andrii Grynenko's avatar
      Make Observable update code run on the observer internal thread · 1cc6c6d9
      Andrii Grynenko authored
      Summary: Previously update() could be run both directly from within the update notification callback (that can happen in any context while holding some application locks), but also while observer is initially created from the observable. This change moves the update logic to be called on the observer internal thread, making the implementation even more resilient to various locks that may be held by the application.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32338088
      
      fbshipit-source-id: 557f47c98469a951ce4b5513ce96e2b3a5d8ba6b
      1cc6c6d9
  3. 16 Nov, 2021 3 commits
  4. 15 Nov, 2021 3 commits
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle (resubmit) · 6b58b9e8
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D32405920
      
      fbshipit-source-id: b0b5c55149aebe4246422fabeffb7ed433b4e20d
      6b58b9e8
    • Andrii Grynenko's avatar
      Remove MicroLock::init() · 22073b2c
      Andrii Grynenko authored
      Summary: Have constructor do init() instead. I can't think of any valid reason to have this API other than confusing everyone who decides to use it.
      
      Reviewed By: praihan
      
      Differential Revision: D32302228
      
      fbshipit-source-id: 136e0d2919291acd60be953337309cd006bd674b
      22073b2c
    • Pranjal Raihan's avatar
      Add FOLLY_DISABLE_MEMORY_SANITIZER to FOLLY_DISABLE_SANITIZERS · 84c2ff1c
      Pranjal Raihan authored
      Summary: Now we'll ignore all the known sanitizers: ASAN, TSAN, MSAN, UBSAN.
      
      Reviewed By: yfeldblum, jdonald
      
      Differential Revision: D32364717
      
      fbshipit-source-id: f71a294dd9ebaa8521f0487ebc65c6f7c1e7bf04
      84c2ff1c
  5. 13 Nov, 2021 1 commit
    • Michel Salim's avatar
      Fix for ppc64le · 028a9aba
      Michel Salim authored
      Summary:
      Inlining `getStackTraceInPlace` fails on Fedora with
      
      ```
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp: In function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)':
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp:88:9: error: function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)' can never be inlined because it uses setjmp
         88 | ssize_t getStackTraceInPlace(
            |         ^~~~~~~~~~~~~~~~~~~~
      ```
      
      Reviewed By: yfeldblum
      
      Differential Revision: D29639503
      
      fbshipit-source-id: 823692d95171d5fb3968761c00b4cc5650db171b
      028a9aba
  6. 12 Nov, 2021 4 commits
  7. 11 Nov, 2021 6 commits
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle · 8f26eb68
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D31450124
      
      fbshipit-source-id: e8d18c49248d85ef864abad2eecffe69de58a546
      8f26eb68
    • Shai Szulanski's avatar
      CoroutineHandle · f5a43a13
      Shai Szulanski authored
      Summary: Extended coroutine handle interface for attaching new features
      
      Reviewed By: capickett
      
      Differential Revision: D31450126
      
      fbshipit-source-id: 2aa6b8a4fb72e5007d08f38fcde5c7abd8eabd67
      f5a43a13
    • Andrew Huang's avatar
      Back out "Add support for remove session callbacks in SSLContext; remove from SSLSessionCallbacks" · 9ededa2b
      Andrew Huang authored
      Reviewed By: AjanthanAsogamoorthy
      
      Differential Revision: D32328268
      
      fbshipit-source-id: e2816aa89d0ffc96e0377603fca6ca4a39830def
      9ededa2b
    • Philip Pronin's avatar
      fix frame count reporting · a922f5ff
      Philip Pronin authored
      Summary:
      We're hiding internal frames during dump, but forget to adjust
      the reported count, so the output looks clowny.
      
      Reviewed By: luciang
      
      Differential Revision: D32340094
      
      fbshipit-source-id: 86a02c54178a03a83fa64c29faf6d82abfa45bf8
      a922f5ff
    • Thomas Orozco's avatar
      eden: add python-filelock to getdeps build · 11af35b6
      Thomas Orozco authored
      Summary: I use it in the next diff.
      
      Reviewed By: xavierd
      
      Differential Revision: D32280314
      
      fbshipit-source-id: 32d86780ae3187449fc7ceb1dc474cc7ac2d1ac1
      11af35b6
    • Yedidya Feldblum's avatar
      let c/x expected and value params be dependent · db8ef89b
      Yedidya Feldblum authored
      Summary: Let their types be determined by the atomic parameter only so that conversions may happen at the call-site. This is what the `std::atomic_compare_exchange` functions do. Those functions are specified to use `typename std::atomic<T>::value_type` rather than `T` but, curiously, not all implementations of `std::atomic` have member type alias `value_type`. So instead of using member type alias `value_type` to get dependency, we use `type_t`.
      
      Reviewed By: ot
      
      Differential Revision: D32259208
      
      fbshipit-source-id: 413e3580aff3dd0ece5051b7a62dfd16f49eb5a8
      db8ef89b
  8. 10 Nov, 2021 5 commits
    • Yedidya Feldblum's avatar
      tweaks to atomic-fetch-bit-op tests · fb8d10f5
      Yedidya Feldblum authored
      Summary: Use invokers and rename the invokers for clarity.
      
      Reviewed By: luciang
      
      Differential Revision: D32160395
      
      fbshipit-source-id: 97052fc42c23db3e315bd721dcf7b3f29669bcaa
      fb8d10f5
    • Yedidya Feldblum's avatar
      rename atomic_fetch_set, atomic_fetch_reset impls · ae59c690
      Yedidya Feldblum authored
      Summary: Choose `_native` and `_fallback` suffixes nstead of `_x86` and `_deafult` suffixes. `_native` instead of `_x86` since the intention is broader than x86; `_fallback` instead of `_default` since fallback is a clear word.
      
      Reviewed By: luciang
      
      Differential Revision: D32160396
      
      fbshipit-source-id: 08d064aae670ea7e93a098b16a511ff43ca8a7e1
      ae59c690
    • Andrii Grynenko's avatar
      Fix stack use after return in Observer.ObservableLockInversion · d1e4e4d4
      Andrii Grynenko authored
      Reviewed By: praihan
      
      Differential Revision: D32297368
      
      fbshipit-source-id: a58c7805d396cc30c0d82a49d5998e2f9d8a799a
      d1e4e4d4
    • Yedidya Feldblum's avatar
      fix mask spec in atomic-fetch-bit-op docs · e5276d4b
      Yedidya Feldblum authored
      Summary: The bit param is 0-based. So, for bit 1, the mask is `0b10`.
      
      Reviewed By: luciang
      
      Differential Revision: D32160394
      
      fbshipit-source-id: cfef250b3035d8c7e29b2f36848482888801781c
      e5276d4b
    • Konstantin Tsoy's avatar
      Mock AsyncUDPSocket::applyOptions() · 039e8ff1
      Konstantin Tsoy authored
      Summary: This fixes mvfst OSS tests on Mac.
      
      Reviewed By: lnicco
      
      Differential Revision: D32227732
      
      fbshipit-source-id: 1375799046803a5183f83441b93deb0ab2e0961f
      039e8ff1
  9. 09 Nov, 2021 2 commits
  10. 08 Nov, 2021 3 commits
    • Andrew Smith's avatar
      Fix crash in MergeChannel when removing subscription to closed receiver · 99b9a899
      Andrew Smith authored
      Summary: We currently call closeReceiver() on a receiver in receiversBySubscriptionId_ that has already been removed from receivers_ (and freed). The fix is to check to see whether the receiver in receiversBySubscriptionId_ is still present in receivers_ before invoking any functions on it. If the receiver is not present in receivers_, that means it has already been closed, so we do not need to close it.
      
      Reviewed By: aary
      
      Differential Revision: D32233062
      
      fbshipit-source-id: 0aa763b509897db7de970e12e2f01cffc1b49fc3
      99b9a899
    • Alex Hornby's avatar
      eden_scm: disable macos CI getdeps build · e9906e2a
      Alex Hornby authored
      Summary: macos build is failing, disable to get clean internal CI
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32238516
      
      fbshipit-source-id: dad2d15d65a9ee971c254775fcc8e6e80fa97ab0
      e9906e2a
    • Andrew Huang's avatar
      Add support for remove session callbacks in SSLContext; remove from SSLSessionCallbacks · bdaec845
      Andrew Huang authored
      Reviewed By: mingtaoy
      
      Differential Revision: D32218077
      
      fbshipit-source-id: 5a966ced07387340d02ad2a85c095939c9e7f530
      bdaec845
  11. 07 Nov, 2021 1 commit
  12. 06 Nov, 2021 3 commits
    • Andrew Smith's avatar
      Immediately cancel any running transform callback on sender cancellation · a4cffed8
      Andrew Smith authored
      Summary: Currently, when we get a cancelled notification on the output sender for a transform, we schedule the cancellation of any running transform callback on an executor. CancellationSource is thread-safe, so we don't need to do this. This diff ensures that cancelling the output receiver will immediately trigger cancellation of any running transform callback, allowing the transform callback to deterministically know that it has been cancelled.
      
      Reviewed By: aary
      
      Differential Revision: D32191796
      
      fbshipit-source-id: aabd58be9b58b0f560b8127b336e626c3482a644
      a4cffed8
    • Andrew Smith's avatar
      Change FanoutChannel to synchronously process handle destruction. · 85724a41
      Andrew Smith authored
      Summary: This ensures that closing a FanoutChannel will synchronously cancel its input receiver. We don't need to run this code on the provided executor, because it is not running as part of a callback (and because we already have a lock).
      
      Reviewed By: aary
      
      Differential Revision: D32191795
      
      fbshipit-source-id: 9ec2a2303a12580e052de7af8651ebf5b773b8b6
      85724a41
    • Yedidya Feldblum's avatar
      DelayedDestructionUniquePtr · b0066f2b
      Yedidya Feldblum authored
      Summary: To ease writing and reading IO code.
      
      Reviewed By: iahs
      
      Differential Revision: D32220718
      
      fbshipit-source-id: db695eb33a60aae0db1b34991bd7d5ce33489f86
      b0066f2b
  13. 05 Nov, 2021 3 commits
    • Yedidya Feldblum's avatar
      a comment explaining the Baton::wait early-delivery c/x · cfbc23fa
      Yedidya Feldblum authored
      Summary: The memory orders seem backwards but are correct. Add a comment explaining the surprising situation.
      
      Reviewed By: ot
      
      Differential Revision: D31594601
      
      fbshipit-source-id: 61a3f5a5700cfe640e025ad5d5388a5dda1f97eb
      cfbc23fa
    • Akrama Baig Mirza's avatar
      Add ThreadIdCollector to IOThreadPoolDeadlockDetectorObserver · d4af6bb8
      Akrama Baig Mirza authored
      Summary:
      Add an implementation of `WorkerProvider` to `IOThreadPoolDeadlockDetectorObserver`.
      
      - On thread start, the observer creates a `TaskStallDetector` and provides it a `ThreadIdCollector` containing the TID of the thread that started
      - The thread will be blocked from exiting until any existing `WorkerProvider::KeepAlive`s are destroyed
      
      Differential Revision: D31963855
      
      fbshipit-source-id: cd749d76a433684a8280d95a4dbff441e32bfda9
      d4af6bb8
    • Alex Hornby's avatar
      remove fbthrift_socket-02 references · ddcb646b
      Alex Hornby authored
      Summary: Move the hg build to fbthrift_socket, it was referencing the removed fbthrift_socket-02 from some cargo files
      
      Reviewed By: mzr
      
      Differential Revision: D32159904
      
      fbshipit-source-id: 58db0fd53cf859d19a237c0a1d50370d405132b8
      ddcb646b