- 13 Nov, 2019 3 commits
-
-
Maged Michael authored
Summary: Allow hazptr_obj_batch-es to outlive the default domain. Background: Until now it was expected that batches are destructed before the destruction of the default domain. This may be restrictive to good use cases. This diff removes the above mentioned restriction and gives hazptr_obj_batch::shutdown_and_reclaim() to decide whether or not to access the default domain by supporting a singleton bool in default_hazptr_domain_alive() that could be made to outlive the default domain by calling that function before constructing the user object that may outlive the default domain. Reviewed By: aary Differential Revision: D18297698 fbshipit-source-id: 6021479ab36ce86d2c411fd71974fde47f7502a2
-
Eric Niebler authored
Summary: In a coroutine returning a `coro::Task<T>`, make `co_return {};` return a default-constructed `T` rather than a default-constructed `folly::Try`. Reviewed By: yfeldblum, andriigrynenko Differential Revision: D18466785 fbshipit-source-id: ed20f0f5ad98a0ef8e693e490417a7e36f706822
-
Orvid King authored
Summary: Newer CRT versions have changed how certain definitions were gated, so we need to update to support them. Reviewed By: akrieger, guangyfb Differential Revision: D18435320 fbshipit-source-id: 40ffc57ed1fe0ad1b01ab834aed9762bde5563cb
-
- 12 Nov, 2019 3 commits
-
-
Rosen Penev authored
Summary: Not supported under ARMv6 and below. Pull Request resolved: https://github.com/facebook/folly/pull/1176 Reviewed By: yfeldblum Differential Revision: D18145021 Pulled By: Orvid fbshipit-source-id: 21796e225f650038479d1f5a858313dab0477e66
-
Felix Handte authored
Summary: As title. Reviewed By: yfeldblum Differential Revision: D18351375 fbshipit-source-id: 594270e7b6b7056f7223fa7575ee33fed8f7d266
-
Yedidya Feldblum authored
Summary: [Folly] `is_trivially_copyable_v`, an inline variable helper for `is_trivially_copyable`. Reviewed By: nbronson Differential Revision: D18413171 fbshipit-source-id: e256e40351492ecce8cfd31151569544aadca4e1
-
- 11 Nov, 2019 2 commits
-
-
Chad Austin authored
Summary: Synchronized::operator-> is dangerous and leads to accidentally acquiring locks or accidentally releasing them too soon. Add a deprecated attribute that suggests using explicit locking instead. Reviewed By: yfeldblum Differential Revision: D18351232 fbshipit-source-id: 7bd3702bdd9b58dfa0fc7e8b8b636db9b5d7af8f
-
Genevieve Helsel authored
Summary: From https://en.cppreference.com/w/cpp/thread/condition_variable/wait, predicate should return false if the waiting should be continued. In the current code, the logic is flipped. Reviewed By: yfeldblum Differential Revision: D18413606 fbshipit-source-id: 3b59efe49946a223204ab68fc9fbe3bb98e3b58e
-
- 10 Nov, 2019 1 commit
-
-
Rosen Penev authored
Summary: Found with modernize-deprecated-headers Note that C++14 deprecated these. Signed-off-by: Rosen Penev <rosenp@gmail.com> Pull Request resolved: https://github.com/facebook/folly/pull/1254 Reviewed By: Orvid Differential Revision: D18369623 Pulled By: yfeldblum fbshipit-source-id: e824bc5474f94fa4fe359ac6a4899eeaaddbb13b
-
- 09 Nov, 2019 2 commits
-
-
aloknnikhil authored
Summary: Fixes cases where control would reach the end of the setThreadName function without an explicit return Pull Request resolved: https://github.com/facebook/folly/pull/1250 Reviewed By: Orvid Differential Revision: D18222073 Pulled By: yfeldblum fbshipit-source-id: 09cbefcc7e2ca80a95d61a4394ed74be8ea8ec55
-
generatedunixname89002005287564 authored
Reviewed By: yfeldblum Differential Revision: D18298354 fbshipit-source-id: 683da223956570304a9ba80dacfb4659ff9a114b
-
- 08 Nov, 2019 2 commits
-
-
Lara Lu authored
Summary: We need the ability to dynamically change the priority of an executor when it's executing work. Specifically, we want to de-prioritize a query's work units while it is being executed if it has taken up too much resources. Pass a callback function to ExecutorWithPriority which sets the priority upon every add. Reviewed By: andriigrynenko Differential Revision: D18344806 fbshipit-source-id: c0c59d3982637703e6e7c3793930b9d9fadce6fe
-
Dan Melnic authored
Summary: Add folly::hardware_concurrency (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D18342219 fbshipit-source-id: 806ef7b46e52896fa289a79854e45447929ab632
-
- 07 Nov, 2019 5 commits
-
-
Chad Austin authored
Summary: In preparation for adding a deprecation annotation to Synchronized::operator->, ensure that folly builds deprecation-clean. Reviewed By: yfeldblum Differential Revision: D18351118 fbshipit-source-id: f90a230d24a95e3983989d2c3caf7a4383a8226a
-
Felix Handte authored
Summary: If the source IOBuf is not chained, we short-circuit the cloning logic and instead share the existing buffer. This works when we implicitly require the clone to have the same headroom and tailroom requirements as the source IOBuf. However, the API allows setting other values. We need to test that we meet those requirements in order to use the shortcut. This diff adds those checks. Reviewed By: yfeldblum Differential Revision: D18180574 fbshipit-source-id: 31bfaabd7663cf83faf919d8cb242df0a7a2969d
-
Abhinav Rai authored
Summary: Using a ThreadPoolExecutor instead of calling getCPUExecutor() to get one. getCPUExecutor() by default returns an inline executor, which doesn't ensure that sleep is triggered on the same executor as the fiber loop. Reviewed By: andriigrynenko Differential Revision: D18353758 fbshipit-source-id: 6810d11b12de3f62ac5286dba00d2b4a9d447eba
-
John Strizich authored
Summary: We removed this dependency in the code a while ago. Reviewed By: saifhhasan Differential Revision: D18366401 fbshipit-source-id: daf1c7865fe0c312694bdf395f9d7ace99f70395
-
Shai Szulanski authored
Reviewed By: yfeldblum Differential Revision: D18356211 fbshipit-source-id: ad2361c65260a1a09f8536d07e5447cfcf5cc552
-
- 06 Nov, 2019 3 commits
-
-
Maged Michael authored
Summary: Add a fixed single-writer multi-reader hash map that supports: - Copy construction with optional expansion - Concurrent read-only lookup. - Concurrent read-only iteration. The map has fixed size. Higher-level users can manage instances of this map to build a more general unbounded map. Reviewed By: davidtgoldblatt Differential Revision: D17522603 fbshipit-source-id: b4fcfe427a343f7226d216670536f2594f187bf3
-
Bo Dong authored
Summary: Change UserCounters to 64bit integer to fit big counters like cpu_cycle counting. Reviewed By: yfeldblum Differential Revision: D18249661 fbshipit-source-id: 7808ef51e7230aa929ed555ed837ba5dd1962944
-
Xiaofei Du authored
Summary: Coro.Throw and Coro.FutureThrow are exactly the same. Delete one Reviewed By: lewissbaker Differential Revision: D18337140 fbshipit-source-id: 9cf479b3e33599b3c8c982cabc87d1227d4efb9b
-
- 05 Nov, 2019 3 commits
-
-
Maged Michael authored
Summary: Add microbenchmarks for request context operations. Reviewed By: LeeHowes Differential Revision: D17434204 fbshipit-source-id: 22c804d71b922dd6894bdf6d98449f0c60c83206
-
Genevieve Helsel authored
Summary: Adds `pwritevNoInt()` and `preadvNoInt()` to FileUtil. Reviewed By: yfeldblum Differential Revision: D18213230 fbshipit-source-id: 0dfcd19ecf4500aa2bba279800d65821309371c6
-
Yedidya Feldblum authored
Summary: [Folly] `invoke_traits`, which can take an invoker and make a traits type that has member traits that look like the std's invoke traits. Reviewed By: vitaut Differential Revision: D18082562 fbshipit-source-id: 9cfaf1a43fd695a23f7eb30d28a3c8aaaf2b9b60
-
- 04 Nov, 2019 3 commits
-
-
Abhinav Rai authored
Summary: Add timeout support to python executor. Executor uses a separate thread running a folly event base. Whenever a timer operation is called, scheduleTimeout is executed in that event base. Reviewed By: andriigrynenko Differential Revision: D18201883 fbshipit-source-id: 337518bea52993461201d6706f438130673ef6ce
-
Dan Melnic authored
Summary: Add iouring folly support, refactor the async IO Reviewed By: kevin-vigor Differential Revision: D17834511 fbshipit-source-id: e20c876a32730549f305334fd5eed02cccf23638
-
Bo Dong authored
Summary: BENCHMARK_COUNTERS tests need to set `using folly::UserCounters` or `using namespace folly`. Add absolute namespace path in the macro to get rid of this requirement. Reviewed By: Orvid Differential Revision: D18271700 fbshipit-source-id: 084041142b7c245e3c861943570416ac89ea6c34
-
- 02 Nov, 2019 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Permit multiple primary namespaces for free-invoke traits instead of just 0 or 1 primary namespace. Reviewed By: vitaut Differential Revision: D18113151 fbshipit-source-id: 57f7b76a89e6dbd88cc2584d72079fa7fd94fe53
-
- 01 Nov, 2019 5 commits
-
-
Luca Wehrstedt authored
Summary: Using `shape[0]` as the length of the IOBuf means using the number of _elements_ along the first dimension, rather than the total number of bytes in the memoryview. Thus - if the element size is not 1 byte, this will get only a fraction of the memory; - if the memoryview is shapeless, the code will segfault; - if the memoryview is multidimensional, it will only get a fraction of the memory (and, if the memory is C-contiguous, it will be an odd slice: in a 2x3 memoryview, it will get the entire first row and half of the second). Perhaps the above was intentional, but I believe that when converting a shaped and typed object to an unshaped and untyped buffer, it's more intuitive to ignore the type and size and just look at the memory backing it. I also added a check to ensure the view is contiguous. IOBufs can't represent a non-contiguous buffer, except by using a chain, which however in this case could have an arbitrary unbounded length, making it unadvisable. Alternatively we could copy the memory, but this is probably not what the user would expect. Disallowing this seems the safest option. Reviewed By: yfeldblum Differential Revision: D18006273 fbshipit-source-id: f21dbb462266eee68f1a5ce0ecea85b1a46e0a8b
-
David Carlier authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1248 Reviewed By: yfeldblum Differential Revision: D18094432 Pulled By: Orvid fbshipit-source-id: 115afedc62be8881941cfb4d0e02748be349763f
-
Amol Bhave authored
Summary: create a unorderedReduceSemiFuture method that returns a SemiFuture instead of just a Future. Reviewed By: mhlakhani Differential Revision: D18248163 fbshipit-source-id: ba1f8ede93c95ea0b877ac306056e7e38c4452e6
-
Chad Austin authored
Summary: Build folly with -Werror and -Wunused-exception-parameter to prevent them from sneaking back in. Reviewed By: yfeldblum Differential Revision: D18232483 fbshipit-source-id: 7154d3dfec6c672aa3aa46299456bd3c4d757709
-
Luca Niccolini authored
Summary: ^ Reviewed By: mjoras Differential Revision: D18256970 fbshipit-source-id: 4d07b961ab5ab145b620d9e10fa67116236bbf80
-
- 31 Oct, 2019 2 commits
-
-
Mingtao Yang authored
Summary: Only do RAND_poll on older versions of OpenSSL. RAND_poll is not required on OpenSSL 1.1.0+, as the RNG is implicitly seeded. On OpenSSL 1.1.1., RAND_poll became aliased to RAND_add. With some custom RNG implementations that did not implement RAND_add, (e.g. python-cryptography's osrandom implementation), this would manifest as a failure. Reviewed By: ngoyal, yfeldblum Differential Revision: D16786271 fbshipit-source-id: 4fb7876525006517c3e554d70736d7071bd3b4e3
-
Matt Ma authored
Summary: The functions in QMS are all marked as const already. Reviewed By: philippv Differential Revision: D18240371 fbshipit-source-id: 113f5c968207f0a4ff9b780cd43de43cb90f758b
-
- 30 Oct, 2019 3 commits
-
-
Mikhail Shatalov authored
Summary: Floating-point scale conversion doesn't require a cast Reviewed By: yfeldblum Differential Revision: D18052505 fbshipit-source-id: 3d87a916da5cec03b23041908066a9862fab6fde
-
Felix Handte authored
Summary: Minor improvements to the CompressionContextPool. Although it should be impossible, this diff checks that we do not retrieve `nullptr`s out of the stack. I also threw in a quick refactor to not store a copy of the deleter in the RTPDeleter. Reviewed By: terrelln Differential Revision: D18131791 fbshipit-source-id: eda1856720fdb86a69ee0a2a867b25bb20ebc319
-
Sermet Iskin authored
Summary: This change adds basic support for server auth through AsyncSSLSocket and fills in the implementation under SSLContext::authenticate() to support peer name verification. virtual void SSLContext::authenticate( bool checkPeerCert, bool checkPeerName, const std::string& peerName = std::string()); SSLContext::authenticate signature has parameters intended for server-auth scenarios, but it doesn't have an implementation underneath it and silently ignores the checkPeerName and peerName parameters. This change implements the intended behavior through OPENSS's SSL_set1_host. The intended behavior is as follows: * When checkPeerName is false, the behavior is unchanged and this should cover all existing use cases. * When checkPeerName is true, either the peerName or the servername (suppled through the AsyncSSLSocket constructor) in this given order is expected to be present in the SAN or CN of the peer's certificate as described in [the OPENSSL documentation](https://www.openssl.org/docs/man1.1.0/man3/SSL_add1_host.html). Socket will error our if neither name is supplied. Wildcard matching when checking the name is intentionally disabled for now since there is no known need for it at the moment. Unit tests are added to cover both positive and negative scenarios around SSL server name auth. Reviewed By: mingtaoy Differential Revision: D18162775 fbshipit-source-id: d275f5e2e9e760895c27ba9d73cf8b6a2d0ff599
-
- 28 Oct, 2019 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Use simpler `cacheline_aligned` v.s. `CachelinePadded` in `LifoSem`, per comments atop `CachelinePadded`. Reviewed By: aary Differential Revision: D18166262 fbshipit-source-id: 807c668666fbbc9c16d5f449fa20234e56b29042
-
Kyle Nekritz authored
Summary: Fixes CVE-2019-11934 Reviewed By: mingtaoy Differential Revision: D18020613 fbshipit-source-id: db82bb250e53f0d225f1280bd67bc74abd417836
-