- 30 Jul, 2018 1 commit
-
-
Dan Melnic authored
Summary: Adding UDP generic segmentation offload support Reviewed By: siyengar Differential Revision: D8825396 fbshipit-source-id: 5974307c2a901f4967e6f1c678b604ec1c21b3d0
-
- 29 Jul, 2018 2 commits
-
-
Lee Howes authored
Summary: Removes support for thenTry to accept a lambda with no parameter list and fail to compile with no arguments. Reviewed By: yfeldblum Differential Revision: D9011934 fbshipit-source-id: ec29b0c3d9475e7d2c566469b0ee333f0dc05738
-
Adin Rosenberg authored
Differential Revision: D8875766 Original commit changeset: d88a323e6c14 fbshipit-source-id: 0f250135c084780895c99e47509e9d41cec0b88f
-
- 28 Jul, 2018 1 commit
-
-
Phil Willoughby authored
Summary: `strerror` isn't thread safe, `folly::errnoStr` is. Reviewed By: yfeldblum Differential Revision: D9036249 fbshipit-source-id: da4ad1089f4319e62b0273ec12b4950624105a77
-
- 27 Jul, 2018 3 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix `fbvector::swap` impl to do proper ADL. Instead of passing template parameters, cast the arguments. That way non-template `swap` overloads can also be found. Reviewed By: Gownta Differential Revision: D9026136 fbshipit-source-id: 29240fed1c90d3556c2476917a21cbe1949c9a3c
-
Mahesh Maddikayala authored
Summary: Added option to send parameters to 'configure' script from fbcode builder Reviewed By: jstrizich Differential Revision: D9004547 fbshipit-source-id: da54fa2dd453aab29051f37106423807a260535a
-
Yedidya Feldblum authored
Summary: [Folly] Tweaks to Futures after {D9015012}. * Publish base-class methods with `using`. * Use trailing-comma in list initializers. Reviewed By: shixiao Differential Revision: D9024885 fbshipit-source-id: d1e548630152a7d7ce892084daef24a4e62dd0df
-
- 26 Jul, 2018 7 commits
-
-
Pedro Eugenio Rocha Pedreira authored
Summary: The futures created by FutureSplitter don't carry the orginal future's executor priority, what makes it hard to guarantee that certain operations based on a future chain run on a determined executor priority. Reviewed By: WillerZ Differential Revision: D9015012 fbshipit-source-id: 96b7e7ccb33583105f96d2170eeb159493b93ed0
-
Dave Watson authored
Summary: Radix sort (as implemented by boost's spreadsort) is 2x faster than std::sort. Reviewed By: nbronson Differential Revision: D8875766 fbshipit-source-id: d88a323e6c14d58f0820c2d6d8c3d578c1305482
-
Alexander Kindyakov authored
Summary: - Fix up wrong order of template arguments in Expected generic - Create tests to check up all 3 forms of swap for Expected Reviewed By: ericniebler Differential Revision: D9013316 fbshipit-source-id: d4cebd83b268a4c5c551ac970f67b598f117fa73
-
Xiao Shi authored
Summary: Despite the standard, `std::vector<bool>::const_reference` is not `bool` in libcpp: http://howardhinnant.github.io/onvectorbool.html Add the implicit ctor so that `f(dynamic)` can be invoked with `f(v[idx])` where `v` is a `const vector<bool>` under libc++. Reviewed By: ot Differential Revision: D8992805 fbshipit-source-id: 0675174c2a247257238bb11b2c7b319653fe92a3
-
Matthieu Martin authored
Summary: Per title I found that it was easier to bypass setContext (and not extend RequestContextScopeGuard) to achieve this result. setShallowCopyContext now directly set the copy as current the new unsetShallowCopyContext exclusively calls set/onset for the context data that was overriden. This assumes that cost will be fine because the callbackData_ sets are small or empty. Similar reason they were split from requestData_ in the first place, for RequestContextScopeGuard efficiency. (Note: this ignores all push blocking failures!) Reviewed By: andriigrynenko Differential Revision: D8943668 fbshipit-source-id: ad99177429de6b7b65bf95fa0e94334d73c3750d
-
Matthieu Martin authored
Summary: This guard maintains all the RequestData pointers of the parent (through shallow copy). This allows to overwrite a specific RequestData pointer for the scope's duration, without breaking others. We decided to keep the raw ptr interface, which required to implement a pseudo shared ptr to achieve the shallow copy behaviour. Rest of the code is pretty straight forward. A few more lines than expected, due to introducing overrideContextData to avoid unecessary memory management (clearData) or warnings (setData). The performance should be neutral for code not using the guard (std::atomic incr/decr). The guard itself is pretty efficient at copying the values, though there is a slight worry about the keys (std::string). This might be a generic concern about current implementation, some form of cheap static would be better. It also calls unecessarily onSet/onUnset. I will fix on top as it makes the change more complex. Reviewed By: djwatson Differential Revision: D8911351 fbshipit-source-id: 1692428382ace1d0b79bbc84a1db50efb4c7b489
-
Matthieu Martin authored
Summary: This added significant cost, it will take effort to deploy, reverting for now Differential Revision: D9007024 fbshipit-source-id: 04074b09a1a2b7f9b57e3d755a2754657dda21c2
-
- 25 Jul, 2018 2 commits
-
-
Lee Howes authored
Summary: Allow map to take a SemiFuture vector by changing the way the return type is deduced. Add overloads that take executor to apply.via and run the mapped tasks on a specified executor, and additionally return a Future that completes on that executor. Reviewed By: andriigrynenko Differential Revision: D7559540 fbshipit-source-id: f9480ea89fcfaa25a050ee7428dc69de300ccfde
-
Andrii Grynenko authored
Summary: Non-template functions in header files have to be marked as inline to avoid linker errors. Reviewed By: yfeldblum Differential Revision: D8983661 fbshipit-source-id: 8f003e9f4e2d40cb6122da8e9e0adacab00ed0fa
-
- 24 Jul, 2018 7 commits
-
-
Xiao Shi authored
Summary: When the param type is larger than `unsigned int`, the wider type `size{}` was implicitly converted to the return type `unsigned int` in `findLastSet`. This diff makes the conversion explicit. Reviewed By: yfeldblum Differential Revision: D8971589 fbshipit-source-id: 8828504c462e9296b84a746bcb7f701bc4a7d20e
-
Dan Melnic authored
Summary: Make ThreadEntry::elementsCapacity atomic Reviewed By: yfeldblum Differential Revision: D8963304 fbshipit-source-id: 0b37bbe97475a400e9b574b8285bde8f38a479f5
-
Hugo Cuvillier authored
Summary: Xcode wasn't impressed when I tried to import `folly::FixedString` from a Objective-C++ context. This seem to satisfy Xcode's toolchain. Reviewed By: lambdapioneer Differential Revision: D8855137 fbshipit-source-id: 7bb3b1039b30241797ec7f3df7c0bbdeffca87bf
-
Xiao Shi authored
Summary: There should be no expectations on what hash is internally used in dynamic, so we don't need to maintain compatibility with `fbstring`, which hasn't been used as string storage in `dynamic` for quite a while. Reviewed By: yfeldblum, ot Differential Revision: D8824634 fbshipit-source-id: 6765472aeeacb55c68b058f5dcc128f6b400bc95
-
Harsh Poddar authored
Summary: GLOG has `-logbuflevel` option that allows a user to specify the level above which none of the logs should be buffered. This is helpful as we can configure it such that `INFO` and all verbose logs are buffered before being output, but all logs above `INFO` should be flushed synchronously. This will ensure that all logs above a certain level are printed before any sort of crash. This diff allows a user to specify a config `sync_level`. The value for this can be any `LogLevel`. Example config: .=WARN,akkio.cli=INFO; default:async=true,sync_level=WARN The default value for GLOG's -logbuflevel is `0` (`INFO`). To match GLOG's behavior, this diff sets the following as defaults: async=true,sync_level=WARN Reviewed By: simpkins Differential Revision: D8867555 fbshipit-source-id: 7ec30dfb41b2f3cd3568d70304db7a9fcf668779
-
Harsh Poddar authored
Summary: Update default log level for Folly's logging to match that of Google's logging. This will make it easier to migrate between the two. Reviewed By: simpkins Differential Revision: D8941725 fbshipit-source-id: 14ed352d9a012f2604ff4329cc7cd038b2c0ee26
-
Louis Brandy authored
Summary: These headers don't include everything they use so things build now because of rando include orders and transitive inclusion. Breaks when attempting to build with clang modules. Reviewed By: shixiao Differential Revision: D8954753 fbshipit-source-id: d222370f17594f5c6aeccd21cbfd61bd8102245a
-
- 23 Jul, 2018 2 commits
-
-
Mahesh Maddikayala authored
Summary: Add resource monitor object to fbzmq library to monitor CPU and memory. User can use the object to query RSS memory, cpu usage, and optionally call API to monitor memory periodicially and crash when reaches beyond a specified threshold limit. Reviewed By: cenzhao Differential Revision: D8873504 fbshipit-source-id: a445fdd580da82c55fba09c43f46f60bb9f1149a
-
Maged Michael authored
Summary: Destructor unlinks and reclaims nodes immediately without checking hazard pointers. Reviewed By: djwatson Differential Revision: D8864161 fbshipit-source-id: 270df5e6b3ef8bc33934b6d55df465309f1068bd
-
- 21 Jul, 2018 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Generic conversion from `Range` in cases like `std::string_view` which are constructible with `Iter, size_type` instead of `Iter, Iter`. Reviewed By: vitaut Differential Revision: D8907212 fbshipit-source-id: 6f93581b7185d4d10925aa57175f130dff2576e3
-
Yedidya Feldblum authored
Summary: [Folly] Use traits in `Range` conversion functions. Dependent code requires this for msvc2015. Reviewed By: vitaut Differential Revision: D8929559 fbshipit-source-id: dbf4afbebdf92ee4eb46067ff443980823cd771d
-
- 20 Jul, 2018 5 commits
-
-
Jason Rahman authored
Summary: HHWheelTimer::Callback is frequently used as a base class for callback objects, while context_ is a commonly desired member name in other classes that also serve as base classes for HHWheelTimer::Callback derived classes. Renaming in HHWheelTimer::Callback to free up availability of context_. Reviewed By: yfeldblum Differential Revision: D8937020 fbshipit-source-id: 8a4612bc57f28673762604cc118a91a347e5972d
-
Matthieu Martin authored
Summary: This attempted to provide a deep copy guard for folly request context. Per brainstorming (see task), we don't think that deep copying all metadata has legitimate use cases. And in fact, this has no usage in our codebase currently. Because it default to reset (when createChild is not overriden), the behaviour is also very confusing. Guards's goal is usually to copy 1 metadata. The solution for that is to provide a shallow copy guard. Something that I will do on top of this revert. I'll wait for both changes to be discussed and accepted before landing this one. Reviewed By: yfeldblum, LeeHowes Differential Revision: D8906912 fbshipit-source-id: e8b9eed04cbe539009037ff75d51e28941502d88
-
Matthieu Martin authored
Summary: My guess is that if we allow to set data in the default context, we also expect set/unset to work. It currently doesn't. This fixes it (at least, the test repro passes), but not sure it's the right fix. Reviewed By: djwatson Differential Revision: D8910506 fbshipit-source-id: cedf1dd0ee91761d210137949da7477ed69fce31
-
Yedidya Feldblum authored
Summary: [Folly] Comments to document explicit conversions from `Range`. Reviewed By: terrelln Differential Revision: D8921990 fbshipit-source-id: 0728e0096738f9a86eecfaa5b05d4dfbcb0533b6
-
Yedidya Feldblum authored
Summary: [Folly] Cut non-`const` conversion overloads from `Range`, for both `operator T` and `to<T>`: let them be `const` member functions so that the converted-to object cannot update `Range` internal state. Reviewed By: terrelln, vitaut Differential Revision: D8921428 fbshipit-source-id: eefc14b5fe2033cac43ebc274b27bdea95388488
-
- 19 Jul, 2018 2 commits
-
-
Edwin Smith authored
Summary: lastOccupiedChunks has UB with an empty container, because the end() iterator itemPtr_ is null. And with a single chunk, we must enter the iteration loop. Reviewed By: nbronson Differential Revision: D8897447 fbshipit-source-id: 7e7fd06ec7a588236eebf28f43af9ef4ab2d39cd
-
Dan Melnic authored
Summary: Fix threadlocal_detail::ElementWrapper::dispose crash due array to reallocation Reviewed By: yfeldblum, djwatson Differential Revision: D8868394 fbshipit-source-id: dc0c91250f2ffbcba7ac4f0bcf0d048e7785d65f
-
- 18 Jul, 2018 6 commits
-
-
Yang Zhang authored
Summary: ThreadPoolExecutor could dynamically adjust number of threads according to workload. Add numActiveThreads() so we can check how many active threads are actually there, while numThreads() returns the upper bound of threads. Reviewed By: djwatson Differential Revision: D8683795 fbshipit-source-id: 09f3b4ee8570e2f2f9f97e939061693f3e0639af
-
Maged Michael authored
Summary: Add unlink_and_reclaim member function to hazptr_obj_base_linked, as an alternative to unlink() that reclaims the object if its link count is zero without checking hazard pointers. It is useful in destructors of data structures when it is guaranteed that objects are not protected by hazard pointers (e,.g., destructor of ConcurrentHashMap). Reviewed By: yfeldblum Differential Revision: D8864019 fbshipit-source-id: 618eeded45a1f8b9503569d1ceca9994ca6e317f
-
Doron Roberts-Kedes authored
Summary: Eliminate while loop behavior in DeterministicSchedule::join Depends on D8789304 Reviewed By: djwatson Differential Revision: D8840276 fbshipit-source-id: f0b0db60f7bec344d021a49cec408a2604d4a1c8
-
Doron Roberts-Kedes authored
Summary: Eliminate spinlock behavior from DeterministicMutex::lock by descheduling threads waiting to acquire the mutex, and placing the thread local semaphore in a waitqueue for the mutex. The unlocking thread reschedules a single waiting thread if the workqueue is non empty. Reviewed By: djwatson Differential Revision: D8789304 fbshipit-source-id: 8ffe3e289c9abfe7515b678ff98f0cefef2461c0
-
Chad Austin authored
Summary: For use in tests where the executor has a nontrivial lifetime but any queued jobs should be completed, have ManualExecutor drain itself before it's destroyed. Reviewed By: yfeldblum Differential Revision: D8845457 fbshipit-source-id: 7c2aa65aa27a7850ff73a93cfbe34c2248b62d26
-
Aaryaman Sagar authored
Summary: Change the write acquire interface to only acquire write locks on non-const `Synchronized` instances. This reflects the intention of mutation associated with a write lock. Reviewed By: yfeldblum Differential Revision: D8851208 fbshipit-source-id: 5be9d2e4a38d25632430a9b6c981b6e7f8412daa
-