1. 18 Oct, 2019 1 commit
    • Alexander Zinoviev's avatar
      trim, ltrim, rtrim functions with custom predicate · d0002eca
      Alexander Zinoviev authored
      Summary: trim, ltrim and rtrim are similar to ltrimWhitespace, rtrimWhitespace and trimWhitespace but you can specify what you want to remove
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17946658
      
      fbshipit-source-id: 9bdc5e6eb810e628a8c16b5142c17a3313f884f2
      d0002eca
  2. 17 Oct, 2019 7 commits
    • Rodolfo Granata's avatar
      folly/executors: properly synchronize access to thread pool stats. · 8c7a26ad
      Rodolfo Granata authored
      Summary:
      ThreadPoolExecutor::getPoolStats depends on derived classes implementation.
      Calling `getPoolStats` is specially useful from `ThreadPoolExecutor::withAll`.
      
      This change moves registration of thread pool executor instances to derived classes
      to avoid `ThreadPoolExecutor::withAll` racing with thread pool destruction while calling `getPoolStats`.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17965135
      
      fbshipit-source-id: 637de55ed78b085dc86fffa0e0f4a66cd4cfcede
      8c7a26ad
    • Dan Melnic's avatar
      keepAliveRelease code reorg · e4519f66
      Dan Melnic authored
      Summary: keepAliveRelease code reorg
      
      Reviewed By: kevin-vigor
      
      Differential Revision: D17835172
      
      fbshipit-source-id: 48c60b04324f0d9bd1ac628e2625d3d4d2654c99
      e4519f66
    • Dan Melnic's avatar
      Add missing switch case · f6ca07e8
      Dan Melnic authored
      Summary: Add missing switch case
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17945170
      
      fbshipit-source-id: 8128c40e1c86b2a5ff8d1bad3c0e9fe197adc174
      f6ca07e8
    • Wez Furlong's avatar
      getdeps: regard IOError as transient when fetching URLs · a9e811bd
      Wez Furlong authored
      Summary:
      this should help avoid this particular error:
      
      ```
      IOError: [Errno socket error] [Errno 11001] getaddrinfo failed
      ```
      
      Reviewed By: chadaustin
      
      Differential Revision: D17886598
      
      fbshipit-source-id: bd9f5b84ebd7ca5c339be3afec3a975fa907d052
      a9e811bd
    • Wez Furlong's avatar
      watchman: pass version info down to watchman build via environment · 4a9c487d
      Wez Furlong authored
      Summary:
      This diff allows passing a watchman version number override
      via the environment as well as via the cmake `WATCHMAN_VERSION_OVERRIDE`
      option.
      
      To help invalidate the build I've added a new section to the manifest
      files that allows listing out additional env vars that the project
      hashes should be sensitive to.  The effect of this is that we'll
      re-run the cmake configure step if the listed env vars are changed.
      
      Reviewed By: Ben0mega
      
      Differential Revision: D17865896
      
      fbshipit-source-id: 8ea5572b0b9b7af95ec5c310e494cb17a139ced4
      4a9c487d
    • Wez Furlong's avatar
      getdeps: constrain testpilot to our number of jobs · e009093f
      Wez Furlong authored
      Summary: testpilot's defaults assume a bigger machine than some of our laptops
      
      Reviewed By: fanzeyi
      
      Differential Revision: D17878120
      
      fbshipit-source-id: e01f1f9c77a4f5f011051c9c642dbe934c66bc0b
      e009093f
    • Lucas Dobson-Defenbaugh's avatar
      Check for existence of thread during getEventBase · a5bffff6
      Lucas Dobson-Defenbaugh authored
      Summary: During shutdown there's a race condition in IOThreadPoolExecutor::getEventBase where a thread is created in ensureActiveThreads, and then destroyed before pickThread() is called. This adds the same guard that exists in add().
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17955227
      
      fbshipit-source-id: 042cb5c42056a9da4578571fb10936bbc477c4ff
      a5bffff6
  3. 16 Oct, 2019 7 commits
    • Eric Niebler's avatar
      add Folly portability macros for C++17 inline variables · fc88fcbf
      Eric Niebler authored
      Summary: Add a portability macro for testing whether the compiler supports C++17's inline variables.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17957184
      
      fbshipit-source-id: bff7d2bc15867e32f787860b4f8e5a0176ac1017
      fc88fcbf
    • Yedidya Feldblum's avatar
      Fix wrong definition of FOLLY_HAVE_GROUP_VARINT · bfdc0a57
      Yedidya Feldblum authored
      Summary: [Folly] Fix wrong definition of `FOLLY_HAVE_GROUP_VARINT` when group varint is unsupported.
      
      Reviewed By: Orvid
      
      Differential Revision: D17961015
      
      fbshipit-source-id: 3c82aaaf4b257180ab0956e4b181bfd619d7adda
      bfdc0a57
    • Matt Ma's avatar
      Fix folly Travis build caused by D17506766. · 91b375da
      Matt Ma authored
      Summary:
      /home/folly/folly/experimental/test/QuotientMultiSetTest.cpp:60:29: error:
      missing template arguments before 'reader'
           folly::QuotientMultiSet reader(data);
      
      Reviewed By: vitaut
      
      Differential Revision: D17959566
      
      fbshipit-source-id: 02fec44b3d644eea0213895aa4df70349ef7d062
      91b375da
    • Wei Liu's avatar
      Revert D17908896: Fix deadlock in Folly RCU · 58405477
      Wei Liu authored
      Differential Revision:
      D17908896
      
      Original commit changeset: 85847fc17f4a
      
      fbshipit-source-id: 9b2bd8c11881cad18cffea0e14349e25d743b150
      58405477
    • Rodolfo Granata's avatar
      ThreadPoolExecutor: throw in getPendingTaskCountImpl instead of pure virtual. · 560befd3
      Rodolfo Granata authored
      Summary:
      Calling `folly::ThreadPoolExecutor::withAll` is powerfull when combined with `folly::ThreadPoolExecutor::getPoolStats`.
      However getPendingTaskCountImpl being pure virtual can trigger `__cxa_pure_virtual ... std::terminate()` while object is partially destructed.
      
      This change signals implementors of derived clases to write a body for getPendingTaskCountImpl while allowing calling getPoolStats -> getPendingTaskCountImpl within a try/catch block.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17915523
      
      fbshipit-source-id: 2ffad7076313407969d88c75c7e457fa4e7e2d6d
      560befd3
    • Joe Loser's avatar
      Check if type is instantiation of a template (#1184) · 626871c3
      Joe Loser authored
      Summary:
      - There is not an easy way to check if a given type is an instantiation
        of a class template.
      - The common solution is to write a custom trait each time and
        specialize it for the given instantiation so that the trait returns
        `std:true_type`.
      - Add `is_instantiation_of` to help with DRY in custom traits for
        checking if a type is an instance of a given class template. Note that
        this does not work when the class template has a mix of type and
        non-type template parameters. It only works with types.
      Pull Request resolved: https://github.com/facebook/folly/pull/1184
      
      Reviewed By: vitaut
      
      Differential Revision: D16161679
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: c933fd3db7c56f61b6784fdcd199ff7963d61d8f
      626871c3
    • Liu Cao's avatar
      Fix deadlock in Folly RCU · 06a918b7
      Liu Cao authored
      Summary:
      The deadlock repro is described https://github.com/facebook/folly/issues/1211.
      Fix is to check the working epoch before retire() starts the sync work.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17908896
      
      fbshipit-source-id: 85847fc17f4a75058d4a72c43dba0c570a2593d6
      06a918b7
  4. 15 Oct, 2019 7 commits
    • Felix Handte's avatar
      Expose Deleter in Context Pool · 6e0b5856
      Felix Handte authored
      Summary: As title.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17937014
      
      fbshipit-source-id: a0ff5f5f9cbbb182794dc564610d7adb9c7c8d08
      6e0b5856
    • Yedidya Feldblum's avatar
      Fix Json.SortKeys test when F14NodeMap may randomize · 628af5dd
      Yedidya Feldblum authored
      Summary: [Folly] Fix `Json.SortKeys` test when `F14NodeMap` may randomize table iteration order.
      
      Reviewed By: shixiao
      
      Differential Revision: D17903465
      
      fbshipit-source-id: 00f1a8c441af3e11815a4312f6dc810ec9455a5e
      628af5dd
    • Chad Austin's avatar
      poll more efficiently in Subprocess::waitTimeout · 3b62632c
      Chad Austin authored
      Summary:
      Unconditionally sleeping for 100ms in the wait polling loop has high average latency. If a process exits just after the initial wait() call, it's better to poll again sooner.
      
      Start with a 2ms sleep and double it every sleep, capping out at 100ms.
      
      Reviewed By: yfeldblum, mzhaom
      
      Differential Revision: D17769851
      
      fbshipit-source-id: efec8fdb8c2199b8db29b46b8c43fdaac56f69a8
      3b62632c
    • Chad Austin's avatar
      add Subprocess::waitOrTerminateOrKill · 16d41c4b
      Chad Austin authored
      Summary: `waitOrTerminateOrKill` fills the gap between `wait()` and `terminateOrKill`. It allows giving the subprocess a chance to shut down cleanly (after closing its stdin pipe, for example), but avoids waiting forever or leaking a child process.
      
      Reviewed By: yfeldblum, mzhaom
      
      Differential Revision: D17769090
      
      fbshipit-source-id: 8940fd63f7eb9c09ef293c89a5e97f69805735ff
      16d41c4b
    • Matt Ma's avatar
      Move QuotientMultiSet to folly/experimental/ · b797de38
      Matt Ma authored
      Summary:
      QuotientMultiSet is a space-efficient static data structure to store a non-decreasing sequence of b-bit integers.
      
      If the integers are uniformly distributed lookup is O(1)-time and performs a single random memory lookup with high probability.
      
      Reviewed By: ot
      
      Differential Revision: D17506766
      
      fbshipit-source-id: b3e7a22dd193672fadb07d4cccb8b01bedae7cf9
      b797de38
    • Joe Loser's avatar
      Document how to build tests in README (#1244) · ccd541a4
      Joe Loser authored
      Summary:
      - Document in the `README.md` how to build tests as part of the CMake build.
      
      Closes https://github.com/facebook/folly/issues/1240
      Pull Request resolved: https://github.com/facebook/folly/pull/1244
      
      Differential Revision: D17927395
      
      Pulled By: yfeldblum
      
      fbshipit-source-id: 6b638ac807886b505b69063f2a47162f3f3fc8de
      ccd541a4
    • Giuseppe Ottaviano's avatar
      Relax bit_cast requirements · d7dbd254
      Giuseppe Ottaviano authored
      Summary: The standard only requires `To` to be trivially copyable, not trivial.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17916612
      
      fbshipit-source-id: 80ae35672ea4664fe4204c8181ac6402065c4e03
      d7dbd254
  5. 14 Oct, 2019 5 commits
    • Lewis Baker's avatar
      Tweak to CollectAllBenchmark · 3b4a98dc
      Lewis Baker authored
      Summary: Made a slight tweak to the collectAll benchmark for the coroutine implementation to avoid allocating additional coroutine frames.
      
      Reviewed By: andriigrynenko
      
      Differential Revision: D17917156
      
      fbshipit-source-id: 890a2ab33eb53050930d4547119d30a9c161887e
      3b4a98dc
    • Chad Austin's avatar
      use std::chrono for Subprocess timeouts · d648e0bf
      Chad Austin authored
      Summary: std::chrono is less prone to error than specifying timeouts in `int` seconds.
      
      Reviewed By: yfeldblum, mzhaom
      
      Differential Revision: D17767787
      
      fbshipit-source-id: 5bb23d3a78e6e798e7b10331dc416e24d5a8746d
      d648e0bf
    • Chad Austin's avatar
      remove uses of Synchronized::operator-> · 816d933c
      Chad Austin authored
      Summary:
      Synchronized::operator-> is dangerous because it's very easy to
      implicitly acquire locks in ways that don't form a coherent locking
      model. Replace uses of it in folly in preparation for removing or
      marking the function deprecated later on.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D17862465
      
      fbshipit-source-id: 45d3b0d738941c3faa6d73418e79dcb8a1259e98
      816d933c
    • Andrii Grynenko's avatar
      CollectAll benchmark · 4269fd6e
      Andrii Grynenko authored
      Reviewed By: yfeldblum
      
      Differential Revision: D17892633
      
      fbshipit-source-id: 1b4b2cffb040b1abf709ea2ccd4015426398dda0
      4269fd6e
    • Andres Suarez's avatar
      Yearless license header [2/2] · 15f1d999
      Andres Suarez authored
      Reviewed By: yfeldblum
      
      Differential Revision: D17889050
      
      fbshipit-source-id: 323a2a5796b4f06c2fe4c84a714a763aa3da4866
      15f1d999
  6. 13 Oct, 2019 3 commits
    • Yedidya Feldblum's avatar
      Apply extra formatting rules · 72850c2e
      Yedidya Feldblum authored
      Summary: [Folly] Apply extra formatting rules beyond black.
      
      Reviewed By: zertosh
      
      Differential Revision: D17898403
      
      fbshipit-source-id: 6d73c75a35513f138bcc0d734aada0c99cff54c7
      72850c2e
    • Yedidya Feldblum's avatar
      Apply black formatter to .py files · 77ab1491
      Yedidya Feldblum authored
      Summary: [Folly] Apply `black` formatter to `.py` files.
      
      Reviewed By: zertosh
      
      Differential Revision: D17898404
      
      fbshipit-source-id: b597b55b646e539a288d175e0b2db8111b5b103b
      77ab1491
    • Andres Suarez's avatar
      Yearless license header [1/2] · d2c64d94
      Andres Suarez authored
      Reviewed By: yfeldblum
      
      Differential Revision: D17889052
      
      fbshipit-source-id: e9733e6ab31d01064660043b0f4edc31b0f5377e
      d2c64d94
  7. 11 Oct, 2019 4 commits
  8. 10 Oct, 2019 5 commits
  9. 09 Oct, 2019 1 commit