1. 13 Dec, 2019 3 commits
    • Misha Shneerson's avatar
      Store tid in ThreadEntry · cf08fcf6
      Misha Shneerson authored
      Summary: We should be able to associate rootId with the TID the request is running on.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D18918492
      
      fbshipit-source-id: 539cd78729b438928a9a4b0c93e8e17295b642d5
      cf08fcf6
    • Misha Shneerson's avatar
      access pointers folly::RequestContext currently running on all threads in the process · 6340be13
      Misha Shneerson authored
      Summary:
      What:
      exposed an API `folly::RequestContext::getRootsFromAllThreads` that reports all "root" RequestContexts for all threads in the process.
      (where "root" is defined as the original RequestContext created for the request but which might have been overridden with `ShallowCopyRequestContextScopeGuard)`
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D18849187
      
      fbshipit-source-id: f3c67becf1e38fb8d2198c81ed0ce77bac860d63
      6340be13
    • Andrii Vasylevskyi's avatar
      More folly wasm32 #if's · ee040cb8
      Andrii Vasylevskyi authored
      Summary:
      Fixing couple more failures in folly when compiling wasm:
      1) making posix_memalign used instead of memalign (wasi-libc has memlaign as legacy P123789170)
      2) disabling clearenv() that is using environ, which wasi-libc has off by ```#ifdef _GNU_SOURCE```, not sure why, but it's already off for linux and we won't use it our wasm code either.
      
      Reviewed By: shodoco
      
      Differential Revision: D18944271
      
      fbshipit-source-id: ffa838591ada1248fdb8ae24f7eac45896a311e2
      ee040cb8
  2. 12 Dec, 2019 3 commits
    • Felix Handte's avatar
      Introduce Singleton Context Pools for Zstd Contexts · 11c10340
      Felix Handte authored
      Summary:
      This is intentionally not hidden in `folly/compression/Zstd.cpp`, so that it
      can be used by other Zstd users as well.
      
      Reviewed By: bimbashrestha
      
      Differential Revision: D18890515
      
      fbshipit-source-id: e87eb6acd03f4b4d5f68201ef924984047d0160e
      11c10340
    • Felix Handte's avatar
      Move the CompressionCoreLocalContextPool to Folly · 7897d0e4
      Felix Handte authored
      Summary:
      This reduces contention on the synchronized stack in the
      `CompressionContextPool`, as well as potentially helping cache locality under
      heavy compression workloads.
      
      I have plans to make a singleton of this, and to use it in `folly::io::Codec`
      and some other places, so they all use the same contexts.
      
      Reviewed By: bimbashrestha
      
      Differential Revision: D18863824
      
      fbshipit-source-id: 63c2f3dd0abe0aa4c88350767e9e77acb763c9a5
      7897d0e4
    • Giuseppe Ottaviano's avatar
      Round-trip iteration order for F14Vector{Map,Set} · 594f4d72
      Giuseppe Ottaviano authored
      Summary: `F14Vector{Map,Set}` have specified iteration order: inverse insertion order. When serialized, however, the order does not round-trip (in fact, it flips). This diff introduces an extension point to specify the iteration order for serialization, and it specializes it for F14 to make the iteration order round-trip.
      
      Reviewed By: vitaut
      
      Differential Revision: D17108774
      
      fbshipit-source-id: 466b746baacff861242729bfa62447c138094cee
      594f4d72
  3. 11 Dec, 2019 2 commits
  4. 10 Dec, 2019 3 commits
    • Lee Howes's avatar
      Add weak symbol-based async logging calls · 4427c1a8
      Lee Howes authored
      Summary: Stub interface for logging functions to integrate with the GlobalExecutor and Futures.
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D18229089
      
      fbshipit-source-id: ad57de08a8bd6a80e2d0af9a9792de86a8267176
      4427c1a8
    • Lukasz Piatkowski's avatar
      Fixes for travic CI build (#3) · 1e3cb828
      Lukasz Piatkowski authored
      Summary:
      This should fix the Travis CI builds. It adds rust toolchain support inside docker and sets the required THRIFT env variable.
      Pull Request resolved: https://github.com/facebookexperimental/rust-shed/pull/3
      
      Reviewed By: krallin
      
      Differential Revision: D18905608
      
      Pulled By: lukaspiatkowski
      
      fbshipit-source-id: 5db1eff6f215a6617d8acaa0c99a62d45225956b
      1e3cb828
    • Yedidya Feldblum's avatar
      Helper variable templates for tuple applicability traits · b221a6b5
      Yedidya Feldblum authored
      Summary: [Folly] Helper variable templates for tuple applicability traits: `is_applicable_v`, `is_applicable_r_v`, `is_nothrow_applicable_v`, `is_nothrow_applicable_r_v`.
      
      Reviewed By: lewissbaker
      
      Differential Revision: D18746853
      
      fbshipit-source-id: 9d01b24030f95ab5b4963660dc4ef471b5e0ad02
      b221a6b5
  5. 09 Dec, 2019 5 commits
    • Dan Melnic's avatar
      Add support for io_uring based EventBase backend · 59c0f069
      Dan Melnic authored
      Summary: Add support for io_uring based EventBase backend
      
      Reviewed By: kevin-vigor
      
      Differential Revision: D18682173
      
      fbshipit-source-id: d6e02879e2b493680caaa3097d75970d0b5d7d07
      59c0f069
    • Anirudh Ramachandran's avatar
      Track resumption status in HandshakeCallback · cfa22893
      Anirudh Ramachandran authored
      Summary: Helps test resumption failure/success in other tests that use AsyncSSLSocketTest classes.
      
      Reviewed By: mingtaoy
      
      Differential Revision: D18561383
      
      fbshipit-source-id: 29852ede80ecd59f662f536368ce2efe7d26745d
      cfa22893
    • Keith Birney's avatar
      Use consistent time_point in cascadeTimers · b5759618
      Keith Birney authored
      Summary: This fixes a timing issue that has been observed in rare cases under very heavy load.
      
      Differential Revision: D18875069
      
      fbshipit-source-id: cd47abfbd01c10e2568693f876dd3e6c2cb3bb24
      b5759618
    • Dan Melnic's avatar
      Add support for setting a zerocopy enable function · 564a32e6
      Dan Melnic authored
      Summary: Add support for setting a zerocopy enable function
      
      Reviewed By: kevin-vigor
      
      Differential Revision: D18579527
      
      fbshipit-source-id: dc3ab7bb13b26528bc964c7eb616517e444487a4
      564a32e6
    • Zoltán Gilián's avatar
      Always define FOLLY_HAS_COROUTINES · c7dd6097
      Zoltán Gilián authored
      Summary: To enable building with -Werror,-Wundef.
      
      Reviewed By: guangyfb
      
      Differential Revision: D18850905
      
      fbshipit-source-id: 95555781fec991eac119c95a6a6cd7751b5ba742
      c7dd6097
  6. 07 Dec, 2019 1 commit
  7. 06 Dec, 2019 5 commits
    • Pavlo Kushnir's avatar
      Make sure to not inline in runInMainContext · 435d9292
      Pavlo Kushnir authored
      Summary: Currently if compiler decides to inline fiber function, we'll end up allocating variables on fiber stack even though we use `runInMainContext`.
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D18842065
      
      fbshipit-source-id: 847c4f95c44ef49f5c7537af878ca8340f2b7b16
      435d9292
    • Adam Simpkins's avatar
      write build output to a log file · c8fbe636
      Adam Simpkins authored
      Summary:
      Update the getdeps builders to save all command output to a log file in the
      build directory.  This makes it easier to go back after the fact and look at
      the config options selected by the build run.
      
      Reviewed By: wez
      
      Differential Revision: D18777059
      
      fbshipit-source-id: 86d3ffa48ec992fe90c59a3835e18f08310ed88c
      c8fbe636
    • Maged Michael's avatar
      SingleWriterFixedHashMap: Check for __cpp_lib_atomic_is_always_lock_free · 6aa52bcf
      Maged Michael authored
      Summary: Add check for `__cpp_lib_atomic_is_always_lock_free` for using `is_always_lock_free`.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D18827013
      
      fbshipit-source-id: 796d1ce3c279a807198897c092464dc3aff734e3
      6aa52bcf
    • Michael Lee (Engineering)'s avatar
      Remove direct include of `folly/folly-config.h` · 1cab1488
      Michael Lee (Engineering) authored
      Summary: `folly/portability/Config.h` serves this purpose now. Clean up references
      
      Reviewed By: Orvid
      
      Differential Revision: D18800127
      
      fbshipit-source-id: 8e1300af74d63f028b83f5e2d8963a674e77e573
      1cab1488
    • Lukas Piatkowski's avatar
      rust toolchain: use RUSTC_BOOTSTRAP when building · 0ca48e95
      Lukas Piatkowski authored
      Reviewed By: mitrandir77
      
      Differential Revision: D18850917
      
      fbshipit-source-id: f211dfbfadf4b5b0cb372cf8aeb9a232c4b3a739
      0ca48e95
  8. 05 Dec, 2019 6 commits
  9. 04 Dec, 2019 12 commits
    • Yedidya Feldblum's avatar
      Let ElfFile open functions take Options · 4462a7f0
      Yedidya Feldblum authored
      Summary:
      [Folly] Let `ElfFile` open functions take a single builder-style composite `Options` argument v.s. taking a sequence of individual arguments one for each option.
      
      Right now there is only one option but it is possible to add more in the future.
      
      While here, rename and invert `readOnly` to `writable`.
      
      Reviewed By: vitaut
      
      Differential Revision: D18740699
      
      fbshipit-source-id: 6fb016f731bf46a1b4ac6b2efcea739f6261818a
      4462a7f0
    • Andrii Grynenko's avatar
      MasterPtr · 8871fd42
      Andrii Grynenko authored
      Summary: Shared-ptr, which should be explicitly joined and waits for all other instances to be destroyed.
      
      Reviewed By: spalamarchuk
      
      Differential Revision: D18696536
      
      fbshipit-source-id: 9d7b0b960a00095be7df033680c7a116c358637c
      8871fd42
    • Yedidya Feldblum's avatar
      Let co_invoke be a CPO · fac0cb2b
      Yedidya Feldblum authored
      Summary: [Folly] Implement `co_invoke` as a generic CPO with customizations found via ADL.
      
      Reviewed By: lewissbaker
      
      Differential Revision: D18753006
      
      fbshipit-source-id: 16239f0bd6140f56bd23effbf092f2b8279c1350
      fac0cb2b
    • Subodh Iyengar's avatar
      use recvmsg on client · d4446668
      Subodh Iyengar authored
      Summary:
      Use the new recvmsg api on the client to receive a packet
      from AsyncUDPSocket
      
      Reviewed By: mjoras
      
      Differential Revision: D18797963
      
      fbshipit-source-id: 319d5c41f3a868e7b78947fdbcf2c411b6d7fbf0
      d4446668
    • Subodh Iyengar's avatar
      Add notification read callbacks to AsyncUDPSocket · a3af6255
      Subodh Iyengar authored
      Summary:
      Add a mode to read callback which only notifies but does not call getReadBuffer.
      
      This also adds a readmsg api for notification callbacks to invoke
      
      This is useful for callbacks that want to perform their own logic of reading from the socket, for example
      a callback might want to perform multiple read calls per callback to save on CPU of epoll
      
      Differential Revision: D18797964
      
      fbshipit-source-id: 86bf1553078a20ea16f56f0c404887fca5050065
      a3af6255
    • Dan Melnic's avatar
      Add support for multiple EventBase backends · e0a9c732
      Dan Melnic authored
      Summary: Add support for multiple EventBase backends
      
      Reviewed By: simpkins, mjoras
      
      Differential Revision: D16157574
      
      fbshipit-source-id: 915c3f08cac5673b5c4ca52a661b41b8a228df75
      e0a9c732
    • Michael Lee (Engineering)'s avatar
      Add @manual annotation to bsd header · c0e397b2
      Michael Lee (Engineering) authored
      Summary: Mark the header as it is not a header provided by folly
      
      Reviewed By: yfeldblum
      
      Differential Revision: D18800770
      
      fbshipit-source-id: 95c9dcdeb6f4b745f0bce859e4d9669c009c353a
      c0e397b2
    • Swaroop Manjunath's avatar
      Populate skip pointers up to universe upper bound instead of last value. · 02784cf2
      Swaroop Manjunath authored
      Summary:
      This diff introduces the following changes:
      
      - EliasFano encoding populates all skip pointers between last value and the universeUpperBound.
      
      Reviewed By: ot, philippv
      
      Differential Revision: D18734361
      
      fbshipit-source-id: 2451614ff99dca22f0247cb572542f8cadc97b6f
      02784cf2
    • Lukas Piatkowski's avatar
      rust-shed: change the workspace member definition to point to the newly moved project directories · 2b647dff
      Lukas Piatkowski authored
      Summary: The projects have been moved to a "shed/" subdirectory, so the root Cargo.toml with workspace has to be adjusted to that move.
      
      Reviewed By: farnz
      
      Differential Revision: D18807189
      
      fbshipit-source-id: 0fd66fa7edd38ab4fdf905872f38fac57ae0230e
      2b647dff
    • Adam Simpkins's avatar
      getdeps: add an install_fb_python_executable() function to the CMake utilities · 7d9a4c55
      Adam Simpkins authored
      Summary:
      Add a `install_fb_python_executable()` function to `FBPythonBinary.cmake` for
      helping to install python executables generated with
      `add_fb_python_executable()`.  This primarily helps by automatically looking
      up the correct output file to install from the generated targets.
      
      Reviewed By: wez
      
      Differential Revision: D18774539
      
      fbshipit-source-id: 4b397580d72ac448f21d1db6d2cdd653cf3635df
      7d9a4c55
    • Orvid King's avatar
      Remove dead includes in folly/gen · f47108d3
      Orvid King authored
      Reviewed By: yfeldblum
      
      Differential Revision: D18780743
      
      fbshipit-source-id: 5b26163f5dabcb14fd9ad7b4d9489d3ca1f6df0d
      f47108d3
    • Maged Michael's avatar
      Request context: Add hazard pointer-based implementation · 6472b9cb
      Maged Michael authored
      Summary:
      Add hazard-pointer-based implementation to allow concurrent reading during updates. This is done by using lightweight concurrent structures protected by hazard pointers instead of sequential structures protected by read locks.
      
      The implementation is gated by a gflag that is off by default.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D18622072
      
      fbshipit-source-id: 120ba14a7a559883e64a3fdf81b35a26315312c1
      6472b9cb