1. 09 Jan, 2020 4 commits
    • Eric Niebler's avatar
      Remove folly's ColdClass, which was of dubious utility · 26f1c45b
      Eric Niebler authored
      Summary: `folly::cold_detail::ColdClass` was marking things (like `folly::Unexpected`) cold, but at the cost of inhibiting the inliner from doing its job. This is leading to bad codegen, which offsets any small wins we mind get for the `cold` attribute.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D19324159
      
      fbshipit-source-id: 7ed431b6c9d6e963c3bf438c707fa6cf6a38bf9d
      26f1c45b
    • Wez Furlong's avatar
      getdeps: dyndeps: gracefully handle empty files · c125c65e
      Wez Furlong authored
      Summary:
      Don't error out if we can't read the ELF/MACH-O header; just treat
      it is not an object.
      
      Reviewed By: chadaustin, simpkins
      
      Differential Revision: D19253434
      
      fbshipit-source-id: c5ecc7f0bc7a20e2611b7e2ff754355155f095da
      c125c65e
    • Gabriel Russo's avatar
      Remove static from for_each_impl · 821088c5
      Gabriel Russo authored
      Reviewed By: yfeldblum
      
      Differential Revision: D19312260
      
      fbshipit-source-id: 9751f70ac83d801cbc8708741e608f73cad8a464
      821088c5
    • Nick Terrell's avatar
      Remove compression counters · 870cfabf
      Nick Terrell authored
      Summary:
      We haven't found them super useful, so lets delete them and replace them with USDTs.
      
      The problems with the counters are:
      * We only have the aggregated results. We can't look at a particular process, stack trace, etc.
      * The speed reported isn't accurate.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D18319361
      
      fbshipit-source-id: 778213fb63eae90cc7900b075e054c021ecf561e
      870cfabf
  2. 08 Jan, 2020 3 commits
    • Dan Melnic's avatar
      Add IP_BIND_ADDRESS_NO_PORT AsyncSocket support. Add the ability to set the... · f9eaa745
      Dan Melnic authored
      Add IP_BIND_ADDRESS_NO_PORT AsyncSocket support. Add the ability to set the socket options pre and post bind()
      
      Summary:
      Add IP_BIND_ADDRESS_NO_PORT AsyncSocket support. Add the ability to set the socket options pre and post bind()
      
      (Note: this ignores all push blocking failures!)
      
      Reviewed By: danobi
      
      Differential Revision: D19315183
      
      fbshipit-source-id: a8dc330c1f585766a00ba7724dcd9f7a6e64bbfb
      f9eaa745
    • Eric Hammerle's avatar
      Fix leak when calling AsyncSSLSocket::cancelConnect() · 3289d2ed
      Eric Hammerle authored
      Summary: AsyncSSLSocket::connect() creates a new instance of AsyncSSLSocketConnector referred with a raw pointer and passes it to AsyncSocket::connect(). AsyncSSLSocket assumed a callback irrespective of connection success or failure so that this raw pointer will be properly disposed off.  However currently, if a connect attempt is cancelled the parent class may end up clearing the connect callback without invoking a connection error, thereby causing a leak. Since the cancelConnect() function also cancels the callback, the raw pointer should be cleaned up during cancellation.
      
      Reviewed By: knekritz
      
      Differential Revision: D18365027
      
      fbshipit-source-id: 2cc171fc1a026b771dcb0bdd7c45b7ee450b97f7
      3289d2ed
    • Yedidya Feldblum's avatar
      atomic_ref · 80d0f4b4
      Yedidya Feldblum authored
      Summary: [Folly] `folly::atomic_ref`, a partial backport of `std::atomic_ref` from C++20.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D18413170
      
      fbshipit-source-id: dddaabd69d2119ee695c75b214ca1c0204edfe6b
      80d0f4b4
  3. 07 Jan, 2020 3 commits
  4. 06 Jan, 2020 5 commits
  5. 05 Jan, 2020 1 commit
    • Igor Sugak's avatar
      fix implicit-integer-truncation UBSAN error in CompressionTest.cpp · d7f0e320
      Igor Sugak authored
      Summary:
      UndefinedBehaviorSanitizer: implicit-integer-truncation folly/compression/test/CompressionTest.cpp:111:34
      ```
      Note, this is not an undefined behavior, but usually is unintentional. In this case it's intentional, add an explicit static_cast to the destination type.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D19281230
      
      fbshipit-source-id: 5374028e551b96e757fbb9f63af2cbbd8ee100e6
      d7f0e320
  6. 04 Jan, 2020 1 commit
  7. 03 Jan, 2020 12 commits
    • Dan Melnic's avatar
      Use function ptr instead of std::function · 1ec49a66
      Dan Melnic authored
      Summary:
      Use function ptr instead of std::function
      
      (Note: this ignores all push blocking failures!)
      
      Reviewed By: yfeldblum, kevin-vigor
      
      Differential Revision: D19277936
      
      fbshipit-source-id: 59c2c79ed07690ffe69461e6a90dbf8b297e51fa
      1ec49a66
    • Yedidya Feldblum's avatar
      DRY the applicability traits tests a little · f8995818
      Yedidya Feldblum authored
      Summary: [Folly] DRY the applicability traits tests a little by extracting a type alias.
      
      Reviewed By: markisaa
      
      Differential Revision: D18748005
      
      fbshipit-source-id: 15d0ceec078a925e7205e7d9398b55cd03004a07
      f8995818
    • Ján's avatar
      disable peer name check (D18162775) when OpenSSL is too old · b6a14167
      Ján authored
      Summary: D18162775 added this code, which doesn't compile on OpenSSL 1.0.1 (e.g. on Debian 8, which is still supported).
      
      Differential Revision: D19032946
      
      fbshipit-source-id: 0f005186e4c9dbaaa76ffce2b62150d92135801b
      b6a14167
    • Songqiao Su's avatar
      (folly) fix memory leak in folly::Observer addCallback · b77eab92
      Songqiao Su authored
      Summary: shared_ptr cycle triggered by inconsistent destructor/move constructor
      
      Reviewed By: yfeldblum, andriigrynenko
      
      Differential Revision: D19206912
      
      fbshipit-source-id: 2b5dcf639eb2e8f9d4ade9511cd9093d7565d482
      b77eab92
    • Dan Melnic's avatar
      Add a BackendCb callback to support multiple types of backend operations (not limited to poll) · fec15c23
      Dan Melnic authored
      Summary: Add a BackendCb callback to support multiple types of backend operations (not limited to poll)
      
      Reviewed By: danobi
      
      Differential Revision: D19275105
      
      fbshipit-source-id: 2eba28b429da4bc237e9c2c2a7e5d0505bd20961
      fec15c23
    • Maged Michael's avatar
      hazptr: Add singleton CPUThreadPoolExecutor for default domain asynchronous reclamation · d895d4ba
      Maged Michael authored
      Summary: Add function to make the default hazptr domain use a CPUThreadPoolExecutor.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D19107084
      
      fbshipit-source-id: 873779d7b9314e5920f2542ef23bb707b47a4e10
      d895d4ba
    • Maged Michael's avatar
      ConcurrentHashMap: Make size_ data-race-free · 70953110
      Maged Michael authored
      Summary: Eliminate data race reported in https://github.com/facebook/folly/issues/1280
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D19072137
      
      fbshipit-source-id: ca2431b8b3b6114694f25024cac0cc0433acfe8b
      70953110
    • Rosen Penev's avatar
      pass by value (#1299) · bfb98fab
      Rosen Penev authored
      Summary:
      Found with modernize-pass-by-value
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      Pull Request resolved: https://github.com/facebook/folly/pull/1299
      
      Differential Revision: D19270977
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 77c33a3425376838fa3c7b04b166137eb74f63ba
      bfb98fab
    • Maged Michael's avatar
      hazptr: Use executor for default domain asynchronous reclamation · 78cfa5e5
      Maged Michael authored
      Summary:
      Add support for using an executor for asynchronous reclamation.
      
      This enables doing asynchronous reclamation on a dedicated executor, which serves two purposes:
      (1) Avoid unpredictable latencies for regular thread operations (that happen to trigger synchronous reclamation).
      (2) Avoid deadlock that may arise from regular threads running deleters that may require resources held by such threads.
      
      By default the QueuedImmediateExecutor is used.
      A member function set_executor allows the use of different executors.
      The intent is to use a thread pool executor.
      In order to avoid cyclical dependency, subsequent diffs (1) add in a separate library a function make the default hazptr domain use a thread pool executor and (2) add a call to such function to folly/init.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D19107049
      
      fbshipit-source-id: 540e9d3aea786a8ece7958d6c09b9429e2a2f4a5
      78cfa5e5
    • Yedidya Feldblum's avatar
      Ensure global inits in Random are static-safe · 66a8324a
      Yedidya Feldblum authored
      Summary:
      [Folly] Ensure global inits in Random are static-safe by using the machinery of `static` local variables.
      
      The default mutex type used with `once_flag` is `SharedMutex`, but that mutex type is not trivially-destructible. An alternative mutex type might be trivially-destructible, such as `MicroLock`, so an alternative solution could be to use `once_flag` with `MicroLock`.
      
      Reviewed By: ot, luciang
      
      Differential Revision: D19207285
      
      fbshipit-source-id: a7d817cf8521337543e3e27bc0e0e61241714ced
      66a8324a
    • Maged Michael's avatar
      RequestContext: Declare gflag, add folly_ prefix to gflag name · ba225d4b
      Maged Michael authored
      Summary:
      Declare gflag to enable turning it on and off at run time.
      Added folly_ prefix to gflag name to reduce name pollution.
      
      Reviewed By: davidtgoldblatt
      
      Differential Revision: D19144459
      
      fbshipit-source-id: 1e82cb102e47fea856952d1e630c03baf38adf1d
      ba225d4b
    • Yedidya Feldblum's avatar
      FOLLY_SAFE_PCHECK · 09634ef5
      Yedidya Feldblum authored
      Summary: [Folly] `FOLLY_SAFE_PCHECK`, for reporting errors from C standard library functions which may set errno from within code which must be reentrant.
      
      Reviewed By: nbronson
      
      Differential Revision: D19222785
      
      fbshipit-source-id: 532ccee39c9d180b9b17edbd31517c09024539d7
      09634ef5
  8. 02 Jan, 2020 3 commits
    • Yedidya Feldblum's avatar
      Avoid unnecessary virtualization in MemoryMapping · 1cd1bfb6
      Yedidya Feldblum authored
      Summary: [Folly] Avoid unnecessary virtualization in `MemoryMapping`.
      
      Reviewed By: Orvid
      
      Differential Revision: D19261862
      
      fbshipit-source-id: 520f1182477bc723c8f42505b30fc09e00758d05
      1cd1bfb6
    • Lukas Piatkowski's avatar
      rust-shed: move stats to the shed · 99642ef2
      Lukas Piatkowski authored
      Summary: This change also introduces a dummy no-op stats implementation for non-fbcode builds.
      
      Reviewed By: farnz
      
      Differential Revision: D19193954
      
      fbshipit-source-id: f513368a2387987bf129ddf935217c90b7c84f2a
      99642ef2
    • James Donald's avatar
      Make defined(_MSC_VER) checks consistent for -Wundef · 96c62e34
      James Donald authored
      Summary: Note: also making the `__GNUC__ || __clang__` nearby part in Pretty.h the same so that the header doesn't appear inconsistent, likewise for Hardware.h
      
      Reviewed By: yfeldblum
      
      Differential Revision: D19237732
      
      fbshipit-source-id: bf3270ddf2102ea722be1eb1a557234d264f9af7
      96c62e34
  9. 01 Jan, 2020 2 commits
  10. 31 Dec, 2019 2 commits
  11. 30 Dec, 2019 1 commit
  12. 29 Dec, 2019 2 commits
    • Yedidya Feldblum's avatar
      Apply clang-format in places · 96652b6f
      Yedidya Feldblum authored
      Summary: [Folly] Apply `clang-format` in places.
      
      Reviewed By: markisaa
      
      Differential Revision: D19249033
      
      fbshipit-source-id: 1a768eea013112ee5cd9d8b78114927fd6d6db04
      96652b6f
    • Yedidya Feldblum's avatar
      Apply python formatting to unsynced .pyi files · 88065016
      Yedidya Feldblum authored
      Summary: [Folly] Apply python formatting to a few unsynced places in some `.pyi` files.
      
      Reviewed By: markisaa
      
      Differential Revision: D19249037
      
      fbshipit-source-id: 6b14c5fedbee0f25a4b0fdfdd0f157e62a95a766
      88065016
  13. 28 Dec, 2019 1 commit