1. 26 Sep, 2020 1 commit
  2. 25 Sep, 2020 7 commits
    • Dan Melnic's avatar
      Skip deadlocking fork tests in TSAN mode · d586f9f8
      Dan Melnic authored
      Summary: Skip deadlocking fork tests in TSAN mode
      
      Differential Revision: D23933183
      
      fbshipit-source-id: a5fe2da954676f6ced2f00dea280e10ac88d99cd
      d586f9f8
    • Dan Melnic's avatar
      Add support for immediate SQ poll submit · aeea7370
      Dan Melnic authored
      Summary: Add support for immediate SQ poll submit
      
      Reviewed By: kevin-vigor
      
      Differential Revision: D23818098
      
      fbshipit-source-id: d8d626c51aef0cf8c0049e081d86313cb731429a
      aeea7370
    • Robin Cheng's avatar
      Make SymbolizerTest pass if compiled as PIE. · 0f0fe916
      Robin Cheng authored
      Summary:
      The symbolizer takes mapped addresses (address listed in ELF, offset by the binary offset (which is zero for non-PIE)) and symbolizes it into non-mapped addresses. In a couple of places in SymbolizerTest, we took the non-mapped addresses and symbolized them again, which wouldn't work if the binary was compiled with PIE. In another place in SymbolizerTest, the mapped address was used to look up DWARF information, whereas we needed the non-mapped address. This diff addresses these issues.
      
      Additionally, I discovered that r_debug::r_map->l_addr is the "right" way to get the PIE offset, so this diff pulls that common functionality to symbolizer/detail/Debug.h and use it for Symbolizer and the three tests so far that need PIE relocation adjustments.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23492850
      
      fbshipit-source-id: 62353e576c50b44070b323b5477fea9bb4c0b500
      0f0fe916
    • Robin Cheng's avatar
      Suppress another TSAN false positive due to openssl not compiled with TSAN instrumentation. · e653781c
      Robin Cheng authored
      Summary: Similar to D23139413, this is another place where openssl causes TSAN issues widely in fbcode.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23698225
      
      fbshipit-source-id: e883784500392c2d5be757c37cceb8bf8cc8b2aa
      e653781c
    • Chad Austin's avatar
      use backtrace(2) on all Apple platforms · 1d2bff8d
      Chad Austin authored
      Summary: I don't recall what previous intermediate state justified guarding use of backtrace with __APPLE__ and FOLLY_USE_SYMBOLIZER, but it no longer applies.
      
      Reviewed By: yfeldblum, luciang
      
      Differential Revision: D23881192
      
      fbshipit-source-id: b3ca829f9c738f50f7ab7e038348ec3df65ae4b9
      1d2bff8d
    • Orvid King's avatar
      Back out "Update folly's source of truth to xplat" · 8be3153a
      Orvid King authored
      Summary: Original commit changeset: 6362acb7a668 (D23066827 (https://github.com/facebook/folly/commit/0b3d9d21b7d1496e0b592ee6ce7a687c86c0498f))
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23837145
      
      fbshipit-source-id: 642c1401aea0b01c0c5e53c24b100f5daa600512
      8be3153a
    • Yedidya Feldblum's avatar
      Fix the Apple LLVM version when disabling tests for Xcode 12 · d8e10145
      Yedidya Feldblum authored
      Summary: [Folly] Fix the Apple LLVM version when disabling is-constexpr-default-constructible test expectations over types with non-trivial destructors for Xcode 12.
      
      Differential Revision: D23917973
      
      fbshipit-source-id: 1238ec5a53ba0ff73afd67f81ad2868f37196eaa
      d8e10145
  3. 24 Sep, 2020 9 commits
    • Yang Chi's avatar
      Move common/gtest:gtest_coro to folly/experimental/coro · 137a7249
      Yang Chi authored
      Reviewed By: yfeldblum
      
      Differential Revision: D23847355
      
      fbshipit-source-id: b5fbf5bea515111d34962100af0f44ae11e0845f
      137a7249
    • Nicholas Ormrod's avatar
      Move not_null to folly · 405149cf
      Nicholas Ormrod authored
      Summary:
      - Changed namespace from facebook::memory to folly
      - Changed include paths
      - Left a stub file in common/memory/not_null.h
      
      Differential Revision: D23740776
      
      fbshipit-source-id: 6eff6823017e3a5d20a540fde10b99aa0381d4b0
      405149cf
    • Yedidya Feldblum's avatar
      Internally rename await in folly/fibers/ · 53874b38
      Yedidya Feldblum authored
      Summary: [Folly] Internally rename `await` in `folly/fibers/` since some versions of MSVC effectively `#define await co_await` breaking the build - except it's not really a `#define` and there is no reliable way to detect it.
      
      Reviewed By: Orvid
      
      Differential Revision: D23882811
      
      fbshipit-source-id: 836bebcbcfe01ce39c873202b67796efafa1c366
      53874b38
    • Kevin Vigor's avatar
      use folly::Function for callback in async IO interface. · acf28118
      Kevin Vigor authored
      Summary:
      folly::Function is non-copyable. This means it can be used with lambdas that capture
      a unique_ptr, whereas std::function can not.
      
      See https://www.internalfb.com/intern/wiki/Folly/Function/
      
      Differential Revision: D23883275
      
      fbshipit-source-id: a26cda0d3833e3ea822beef99c6a28a6dd90fa83
      acf28118
    • Curtis Li's avatar
      Fix some -Wdocumentation errors in folly · 73d254b5
      Curtis Li authored
      Summary:
      Fixes a few documentation errors that get surfaced when compiling with the -Wdocumentation flag.
      Full explanation of errors with examples here:
      https://clang.llvm.org/docs/DiagnosticsReference.html#wdocumentation
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23872718
      
      fbshipit-source-id: 0bb803c6e9412e72985c17415b424be08b51a693
      73d254b5
    • Yedidya Feldblum's avatar
      Rename private find member · c28acad2
      Yedidya Feldblum authored
      Summary: [Folly] Rename private `find` member in `sorted_vector_set`, `sorted_vector_map` to avoid confusing conflicts with derived-class `using` statements when the derived class privately inherits the base.
      
      Reviewed By: ha1dfo
      
      Differential Revision: D23863338
      
      fbshipit-source-id: 43e67da9683fb4c0af3fa1c86ade7735935e5e0c
      c28acad2
    • Yedidya Feldblum's avatar
      Suppress is-constexpr-default-constructible test under Clang 10 · 8695aec8
      Yedidya Feldblum authored
      Summary:
      [Folly] Suppress is-constexpr-default-constructible test for types with non-trivial user-provided (until C++20) or non-constexpr (since C++20) destructors under Clang 10.
      
      Responsible llvm commit: https://github.com/llvm/llvm-project/commit/457226e02a6e.
      
      Related llvm bug report: https://bugs.llvm.org/show_bug.cgi?id=47620. This bug report documents a crash in the compiler, but fails to document deviation from the language spec.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D23862920
      
      fbshipit-source-id: 855db4773ffc062ad9d361feac3709922db7b42d
      8695aec8
    • Xavier Deguillard's avatar
      io: fix signed comparison warning · 15523d66
      Xavier Deguillard authored
      Summary: This shows up when compiling with mode/win.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23871729
      
      fbshipit-source-id: 1d52f41f425cd542bae1ac2c3bfe9893fffefdf4
      15523d66
    • Maged Michael's avatar
      hazptr: Clarify warning about reclamation executor · 92fe7260
      Maged Michael authored
      Summary:
      Change WARNING to INFO because there are cases where not using a dedicated thread pool is the right choice. INFO still provides the debugging benefit if the lack of dedicated thread pool indeed leads to deadlock.
      
      Clarify that the likely cause for the message about the reclamation executor is that the program did not call folly::enable_hazptr_thread_pool_executor which is called by folly::init.
      
      Reviewed By: yfeldblum, joshkehn
      
      Differential Revision: D23826463
      
      fbshipit-source-id: a5906ee974b5fe87c2d38dcff9a0f2717afb2a5c
      92fe7260
  4. 23 Sep, 2020 4 commits
    • Rahul Tekawade's avatar
      Fix Traits `folly::IsOneOf` document typo · 09cfcf96
      Rahul Tekawade authored
      Summary: Fix document typo for `folly::IsOneOf` (see diff)
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23863254
      
      fbshipit-source-id: 02f64a72decab028be832f71e1132dfce7fe5fa9
      09cfcf96
    • Chad Austin's avatar
      enable symbolizer on any platform with backtrace(3) · c0938b8a
      Chad Austin authored
      Summary:
      Now that symbolizer has precise feature flags, enable
      FOLLY_USE_SYMBOLIZER on any platform that has backtrace(3), which is
      all that's needed to get a useful stack trace printed in the signal
      handler.
      
      Reviewed By: yfeldblum, luciang
      
      Differential Revision: D23361609
      
      fbshipit-source-id: b124f7fd01e94f90d8f8586555a64bd6e412040c
      c0938b8a
    • Dan Melnic's avatar
      Allow changing the Sleeper sleep interval · d7736cff
      Dan Melnic authored
      Summary: Allow changing the Sleeper sleep interval
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23591682
      
      fbshipit-source-id: 81b55fa699362d62e436c599c38046d15fecee37
      d7736cff
    • Zhaodong Wang's avatar
      Return erased size in erase_if · 0a1b471e
      Zhaodong Wang authored
      Summary:
      To have parity with C++20 `std::erase_if`: https://en.cppreference.com/w/cpp/container/unordered_set/erase_if
      
      Added a return value for `folly::erase_if` for the number of the removed elements.
      
      (Note: this ignores all push blocking failures!)
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23779631
      
      fbshipit-source-id: cea42b90557dd570db8e010d68c2b9ecf0bcc515
      0a1b471e
  5. 22 Sep, 2020 5 commits
    • Nick Terrell's avatar
      Fix 1-byte heap overrun · cfd29074
      Nick Terrell authored
      Summary: Fix 1-byte buffer overrun when parsing the string "\t".
      
      Reviewed By: mhlakhani
      
      Differential Revision: D22931605
      
      fbshipit-source-id: a90d0a64b882ed8fef96285d47e11fa082178449
      cfd29074
    • Andrii Grynenko's avatar
      Fix builds on windows · ef52bd9a
      Andrii Grynenko authored
      Summary:
      Move ContextPrimaryPtr definition outside of the function.
      Rename MasterPtr to PrimaryPtr.
      
      Reviewed By: Orvid
      
      Differential Revision: D23836006
      
      fbshipit-source-id: d2ad229809fb260c485a7349eca7378e22dc66c4
      ef52bd9a
    • Andrii Grynenko's avatar
      Unwrap Observer<Observer<T>>> · 39e09616
      Andrii Grynenko authored
      Differential Revision: D23829791
      
      fbshipit-source-id: 4a13cd70f20de487ece11a1eada94467e1700b6e
      39e09616
    • Michael Lee (Engineering)'s avatar
      Check the value of `FOLLY_USE_JEMALLOC` instead of assuming defined · 0e94731b
      Michael Lee (Engineering) authored
      Summary:
      To be able to override this feature, we should check that
      `FOLLY_USE_JEMALLOC` is set to 1 rather than just set.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D22681072
      
      fbshipit-source-id: 18b35910217fd1869cc23107a50241c4ed2ed1b7
      0e94731b
    • Chad Austin's avatar
      only build exception_tracer on elf platforms with libdwarf · c43ba39c
      Chad Austin authored
      Summary: FOLLY_USE_SYMBOLIZER is too coarse of a flag to determine whether ExceptionTracer is available. Instead, use FOLLY_HAVE_ELF and FOLLY_HAVE_DWARF.
      
      Reviewed By: yfeldblum, luciang
      
      Differential Revision: D23361407
      
      fbshipit-source-id: 2326f185c98f58e7afb007befc9121a365c22e77
      c43ba39c
  6. 21 Sep, 2020 2 commits
  7. 19 Sep, 2020 1 commit
  8. 18 Sep, 2020 7 commits
  9. 17 Sep, 2020 4 commits
    • Lukas Piatkowski's avatar
      getdeps: update zstd to 1.4.5 · a590a0e5
      Lukas Piatkowski authored
      Reviewed By: krallin
      
      Differential Revision: D23757084
      
      fbshipit-source-id: 7e49228805e272064ad52d43141b5815eba4190a
      a590a0e5
    • Yedidya Feldblum's avatar
      Always enable fiber support in futures · dfed6248
      Yedidya Feldblum authored
      Summary:
      [Folly] Always enable fiber support in futures.
      
      (Note: this ignores all push blocking failures!)
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D19229519
      
      fbshipit-source-id: f0a034e9387c5ccad676a911213fab74364ca340
      dfed6248
    • Lewis Baker's avatar
      Add co_awaitTry() support to AsyncGenerator · bdd4cbe1
      Lewis Baker authored
      Summary:
      Add the ability for an AsyncGenerator to yield an error without needing to throw an exception and for consumers to retrieve the error without rethrowing the exception.
      
      Added a new `folly::coro::co_error` type that acts as a simple wrapper around a `folly::exception_wrapper` that can be used to indicate that this value is an error.
      
      This allows `AsyncGenerator` bodies to now `co_yield` a `co_error` as a way of completing with an error without needing to throw the exception.
      
      For example:
      ```
      class SomeError : public std::exception { ... };
      folly::coro::AsyncGenerator<int> example() {
        co_yield 42;
        co_yield folly::coro::co_error(SomeError{});
      }
      ```
      
      This diff also adds support for `folly::coro::co_awaitTry()` to the `AsyncGenerator::next()` method.
      
      For example:
      ```
      folly::coro::Task<void> consumer() {
        folly::coro::AsyncGenerator<int> gen = example();
        folly::Try<int> result =
          co_await folly::coro::co_awaitTry(gen.next());
        // use result
      }
      ```
      
      Added a benchmark to compare performance of the new interfaces vs the existing throwing-based error handling.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D18015926
      
      fbshipit-source-id: 27d2e16e7dde9b4c871846f5d17b40ec3737330a
      bdd4cbe1
    • Lee Howes's avatar
      r-value qualify Future::getVia for consistency with other get operations · 3153b1b0
      Lee Howes authored
      Summary: getVia is destructive like other forms of get. This change r-value qualifies it to highlight that in code.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23603722
      
      fbshipit-source-id: d2aecac3c6eb09e0fcf55a07e310114ebc13b932
      3153b1b0