1. 01 Sep, 2020 7 commits
    • Maged Michael's avatar
      hazptr: Rename warning function · 92a2a9b3
      Maged Michael authored
      Summary:
      Change name of warning_list_too_large to hazptr_warning_list_too_large for consistency with other hazptr warning functions.
      
      Add missing  FOLLY_EXPORT.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23436826
      
      fbshipit-source-id: 149c62c9d1cd3320ef525a90c0b591b274228054
      92a2a9b3
    • Yedidya Feldblum's avatar
      is_detected · 2d4d958f
      Yedidya Feldblum authored
      Summary: [Folly] `is_detected`, for a common pattern around `void_t`, backported from Library Fundamentals TS v2.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D23367990
      
      fbshipit-source-id: 3a0e9a5b7eb668f872ce699757e32bb620bb5404
      2d4d958f
    • Dan Melnic's avatar
      Add support for microsecond intervals in the function scheduler · 354e50d4
      Dan Melnic authored
      Summary: Add support for microsecond intervals in the function scheduler
      
      Reviewed By: arushiagg
      
      Differential Revision: D23433411
      
      fbshipit-source-id: 39d201feaaed8007ec880a799129ed94bedd827a
      354e50d4
    • Dan Melnic's avatar
      Add io_uring registered buffers support · 16d63941
      Dan Melnic authored
      Summary: Add io_uring registered buffers support
      
      Reviewed By: kevin-vigor
      
      Differential Revision: D23421043
      
      fbshipit-source-id: b9c6a4bbd7a6b6cc580b1e3f64320d9e59d04ab2
      16d63941
    • Yedidya Feldblum's avatar
      Revise is_instantiation_of_v and is_instantiation_of · 6226f8a2
      Yedidya Feldblum authored
      Summary: [Folly] Revise is_instantiation_of_v as a variable and as eager, and is_instantiation_of as a type and as deferred.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D23367989
      
      fbshipit-source-id: bf6ebd74b8e7758818dfcebd04152e1297bc99e4
      6226f8a2
    • Lucian Grijincu's avatar
      folly: doNotOptimizeAway + makeUnpredictable to their own library: folly/BenchmarkUtil.h · 8132af20
      Lucian Grijincu authored
      Summary: These lightweight functions are useful on their own, but were tied to `Benchmarking.h` & all their dependencies.
      
      Reviewed By: yfeldblum, ot
      
      Differential Revision: D20239087
      
      fbshipit-source-id: 644601b6f869191db1492d0738f3af723b9e0f4b
      8132af20
    • Victor Zverovich's avatar
      Fix LoggerTest · 0dd60e57
      Victor Zverovich authored
      Summary: Fix overspecified LoggerTest.
      
      Reviewed By: yfeldblum, simpkins
      
      Differential Revision: D23425421
      
      fbshipit-source-id: ecfd7d0e73555b3a94a81b54ffd1287bf9664697
      0dd60e57
  2. 31 Aug, 2020 3 commits
  3. 28 Aug, 2020 8 commits
    • Chad Austin's avatar
      stop using deprecated std::iterator · 8dc2d39f
      Chad Austin authored
      Summary:
      std::iterator was deprecated in C++17, so define the iterator trait
      properties directly. This fixes warnings during compilation with Clang
      on Windows.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23353495
      
      fbshipit-source-id: 7c6c0b7fb175251260e5b519ce98bd679b6c99c4
      8dc2d39f
    • Dan Melnic's avatar
      Add support for async range submit · db7a54ac
      Dan Melnic authored
      Summary: Add support for async range submit
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23389493
      
      fbshipit-source-id: 7171893a2eeccc20fcdd625e98f88d365027c930
      db7a54ac
    • Andrii Grynenko's avatar
      Workaround for TSAN symmetric transfer bug · 135f8252
      Andrii Grynenko authored
      Summary: TSAN breaks symmetric transfer behavior in compiler. Work around it by rescheduling work on executor when possible.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23391328
      
      fbshipit-source-id: 7b25a0c89664ca14114f8ae0dc650ff9bb786fe1
      135f8252
    • Dan Melnic's avatar
      Switch from VLA to folly::small_vector · 687f3fe8
      Dan Melnic authored
      Summary: Switch from VLA to folly::small_vector
      
      Reviewed By: yfeldblum, ot
      
      Differential Revision: D23391426
      
      fbshipit-source-id: c6c61f3f0eef5b6e71ad3a639fcfdb4fa1b7268e
      687f3fe8
    • Dan Melnic's avatar
      Add support for microsecond intervals in the function scheduler · defe385b
      Dan Melnic authored
      Summary: Add support for microsecond intervals in the function scheduler
      
      Reviewed By: yfeldblum, Mizuchi
      
      Differential Revision: D23153179
      
      fbshipit-source-id: 10f18d7b774c47659fe8191f8d92dca341e1cf97
      defe385b
    • Yedidya Feldblum's avatar
      Remove the guard around tag · d2a3bb4f
      Yedidya Feldblum authored
      Summary: [Folly] Remove the guard around `tag`, the inline variable of type `tag_t`.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D23370037
      
      fbshipit-source-id: 59a48d834904b7e503f807c62fff8534568c9a0a
      d2a3bb4f
    • Andrew Smith's avatar
      Make folly::coro::co_invoke work with folly::coro::Generator · 28cc462f
      Andrew Smith authored
      Summary: This diff makes folly::coro::co_invoke work with folly::coro::Generator.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23332912
      
      fbshipit-source-id: b3e25d160a94aed8892bf55ad5007f4018786e47
      28cc462f
    • Lewis Baker's avatar
      Add folly::coro::AsyncScope::remaining() · 4c6cb736
      Lewis Baker authored
      Summary:
      Add a method for querying the number of remaining tasks
      that have been added to an AsyncScope but that have not
      yet completed.
      
      This can be useful for implementing some load-shedding
      strategies based on the current number of active tasks
      added to a scope.
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D21461637
      
      fbshipit-source-id: 628c236e0c99fa952e63f84366186246e5286bc8
      4c6cb736
  4. 27 Aug, 2020 2 commits
    • Zhengxu Chen's avatar
      Update OSS CMakeLists.txt to use CMAKE_CXX_STANDARD · 9fdb0d52
      Zhengxu Chen authored
      Summary: Adjust low level deps in OSS builds to use standard `CMAKE_CXX_STANDARD` variables to control std level in cpp builds.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23333713
      
      fbshipit-source-id: cd76712d6b045f1d0aff30d4874d9bf0ce6f1e01
      9fdb0d52
    • Yedidya Feldblum's avatar
      Use C++ to check for mobile in IOBuf · 8af2de83
      Yedidya Feldblum authored
      Summary:
      [Folly] Use C++ v.s. the preprocessor to check for mobile in `IOBuf`.
      
      Using C++ allows the compiler, when compiling for any platform, to see the full code for every platform and to typecheck and report errors.
      
      Reviewed By: aditya7fb
      
      Differential Revision: D23365674
      
      fbshipit-source-id: 9cfe048a3114be3d6ef4522e279e19fb21f50a17
      8af2de83
  5. 26 Aug, 2020 2 commits
    • Chad Austin's avatar
      unconditionally build symbolizer sources even if FOLLY_USE_SYMBOLIZER is unset... · 90ab2b68
      Chad Austin authored
      unconditionally build symbolizer sources even if FOLLY_USE_SYMBOLIZER is unset or the platform is non-ELF
      
      Summary:
      Rather than conditionally include the folly symbolizer sources in the
      CMake build, always build them, and add appropriate dependency defines
      to conditionally enable functionality.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D22970595
      
      fbshipit-source-id: 957242b7fde28584edd78a1a6dbe9f830e98e726
      90ab2b68
    • Robin Cheng's avatar
      Disable some slow StlVectorTest cases under TSAN. · 6da515d7
      Robin Cheng authored
      Summary: These tests time out under TSAN and there's not much value to run them under TSAN because the tests are single-threaded.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23302147
      
      fbshipit-source-id: 6fc8bd3e29c9cde72bfa85a14fd7726850540285
      6da515d7
  6. 25 Aug, 2020 4 commits
  7. 24 Aug, 2020 1 commit
  8. 22 Aug, 2020 2 commits
    • Michael Park's avatar
      Add `std::variant` support for `folly::variant_match`. · a5683e13
      Michael Park authored
      Summary: This patch adds support for `std::variant` to `folly::variant_match` but without including `<variant>`.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23196572
      
      fbshipit-source-id: 9d5b519958b04c13cc024d393247c73cec00ac67
      a5683e13
    • Misha Shneerson's avatar
      Do not capture RCTX in HHWheelTimer's underlying AsyncTimeout · e72f5c7b
      Misha Shneerson authored
      Summary:
      We should only be capturing `folly::RequestContext` in HHWheelTimer's callback
      objects (already  happens). And avoid capturing it in underlying AsyncTimeout.
      
      Notice that `AsyncTimeout::scheduleTimeout`/`scheduleTimeoutHighRes` APIs capture
      current `folly::RequestContext` and `AsyncTimeout::cancelTimeout`
      releases the captured `folly::RequestContext`
      
      Now, the way HHWheelTimer works, it re-uses one instance of AsyncTimeout for
      multiple timeouts. This opens up possibility for leaking lifetime of RCTX.
      Imagine first  request A and then B schedule timeouts using same HHWheelTimer
      instnace. A's RCTX is captured by underlying AsyncTimeout. Next, request A is
      complete and we need to cancel its timeout. Notice, however that A's RCTX will
      not be destroyed as long as B is still running. That's the lifetime management
      leak.
      
      Reviewed By: jordalgo, andriigrynenko
      
      Differential Revision: D23260733
      
      fbshipit-source-id: 0bdf79db40d34d6682e89e87ce30811ffccc8cbf
      e72f5c7b
  9. 21 Aug, 2020 2 commits
  10. 20 Aug, 2020 5 commits
    • Shai Szulanski's avatar
      Add deduction guide to co_result · 694c1cbc
      Shai Szulanski authored
      Reviewed By: yfeldblum, lewissbaker
      
      Differential Revision: D23240860
      
      fbshipit-source-id: 74aab6151c9c44159a2d3fc4e041b475b69e29e7
      694c1cbc
    • Dan Melnic's avatar
      Do not call scheduleImmediateRead() if the EVB has changed · c4c78b82
      Dan Melnic authored
      Summary: Do not call scheduleImmediateRead() if the EVB has changed
      
      Reviewed By: yfeldblum
      
      Differential Revision: D23234912
      
      fbshipit-source-id: 8394700a53b4e2fa925519271c1c27fc0ce11a85
      c4c78b82
    • Nanshu Chen's avatar
      refactor Enum code generation · ad89a017
      Nanshu Chen authored
      Summary:
      Changed the way how enums generated in thrift-py3:
      
      1. Use C++ map to store name to unique Enum Python instances cache
      2. Dynamically find instances from cache (or create one and add to cache) instead of populating all instances at module load time
      3. use `__getattr__` and `__getitem__` instead of code-gen all the getters
      
      Reviewed By: asp2insp
      
      Differential Revision: D23182622
      
      fbshipit-source-id: 75baef997ee2d604b4ef7606f282cfc3306208ac
      ad89a017
    • Andrew Gallagher's avatar
      Remove self-include · 1ceb5acb
      Andrew Gallagher authored
      Reviewed By: yfeldblum
      
      Differential Revision: D23223918
      
      fbshipit-source-id: 72fb70ccabb57229298515f55334807ad2dfff36
      1ceb5acb
    • Shrikrishna Khare's avatar
      SAI API 1.6.3 · ecc740ba
      Shrikrishna Khare authored
      Summary: As titled.
      
      Differential Revision: D23216535
      
      fbshipit-source-id: 4d278cd1f5d4c661eddda265d92f51d391192404
      ecc740ba
  11. 19 Aug, 2020 3 commits
    • Yedidya Feldblum's avatar
      Re-port memrchr · c8972cd5
      Yedidya Feldblum authored
      Summary:
      [Folly] Re-port memrchr, avoiding build-system detection.
      
      Proper detection at build-system time is challenging.
      * Some platforms do not define `memrchr`.
      * Some platforms define it as a C function.
      * Some platforms define it as a pair of C++ functions.
      
      Proper porting requires proper build-system detection.
      
      Rather than going down that rabbit-hole, we can wrap `memrchr` and do compile-time detection using SFINAE.
      
      This change adds a new strategy. A subsequent change may remove the old strategy.
      
      Reviewed By: Orvid
      
      Differential Revision: D22125127
      
      fbshipit-source-id: 2da7cca571de335b2cff43ff7846ab04d90136ef
      c8972cd5
    • Misha Shneerson's avatar
      priority can be a negative int8_t · 190ff15c
      Misha Shneerson authored
      Reviewed By: yfeldblum
      
      Differential Revision: D23178843
      
      fbshipit-source-id: d9fade6f7a5f8472bffb7a40d285eaf7646ac0e8
      190ff15c
    • Yedidya Feldblum's avatar
      Minimize conditional compilation in AsyncUDPSocket · be66f73c
      Yedidya Feldblum authored
      Summary: [Folly] Minimize conditional compilation in `AsyncUDPSocket`.
      
      Differential Revision: D23172282
      
      fbshipit-source-id: 6ead5cf2232b9db0f709080666262ccc4b5984da
      be66f73c
  12. 18 Aug, 2020 1 commit
    • Michael Park's avatar
      Removed out-dated notes from `Futures.md`. · 16a70848
      Michael Park authored
      Summary:
      The examples showing `thenValue(executor, ...)` is outdated since the executor-taking form of `then` have been `delete`d.
      
      The example showing racy execution of continuations of `Future`s is no longer relevant. It used to be a valid example when the `Future`s used to be "activated" on destruction, but they no longer have this behavior.
      
      Fixes #1422.
      
      Reviewed By: LeeHowes
      
      Differential Revision: D23181958
      
      fbshipit-source-id: 46d2bedd4fef344734d3eb15eb295b9a98969665
      16a70848