- 26 Jun, 2015 8 commits
-
-
Dave Watson authored
Summary: make it std::atomic Reviewed By: @tudor Differential Revision: D2191861
-
Yedidya Feldblum authored
Summary: [Folly] to_shared_ptr. So you can write this: auto sptr = to_shared_ptr(getSomethingUnique<T>()); Instead of this: auto sptr = shared_ptr<T>(getSomethingUnique<T>()); Useful when `T` is long, such as `T = foobar::cpp2::FooBarServiceAsyncClient`. Reviewed By: @meyering Differential Revision: D2193572
-
Woo Xie authored
Summary: this taks advantage of SSL_write_iovec and SSL_read_buf functions to improve CPU. This eliminates one malloc+memcpy+free operation for all HTTPS traffic, and save up to two for small packets. It saves 10~15% CPU https://fburl.com/99681397 https://fburl.com/99427544 Reviewed By: @djwatson Differential Revision: D1993764
-
Tom Jackson authored
Reviewed By: @ot Differential Revision: D2188740
-
Hans Fugal authored
Summary: We have this now. Reviewed By: @jsedgwick Differential Revision: D2191642
-
Hannes Roth authored
Summary: Storing the new state could be a memory race according to C++ (but wasn't in practice). I only checked GCC though. Reviewed By: @nbronson Differential Revision: D2189287
-
Hannes Roth authored
Summary: Not 100% about the `ThreadWheelTimekeeper` test. It makes TSAN happy though. Reviewed By: @yfeldblum Differential Revision: D2187901
-
Hannes Roth authored
Summary: 1) We forgot to `--attached_` if `x` throws an exception 2) `PriorityExecutor` didn't execute `Func`, causing leaks in the test (not a bug in Futures) 3) I moved up the initialization for an empty `Core` into the constructor to make it easier to see Reviewed By: @jsedgwick Differential Revision: D2187343
-
- 24 Jun, 2015 10 commits
-
-
Sara Golemon authored
Summary: This was set to 32 which probably works fine for the majority of FB servers, but not everyone's system is so endowed. Closes #119 Reviewed By: @fredemmott Differential Revision: D2187008
-
Hannes Roth authored
Summary: See title. Reviewed By: @fugalh Differential Revision: D2186833
-
Sara Golemon authored
Summary: The existing tests were trying to find undocumented symbols in glog/glags which aren't guaranteed to be there on all platforms. Use AC_RUN_IFELSE() to try building and executing some code typical of the usage of these libraries. Closes #117 Reviewed By: @JoelMarcey Differential Revision: D2183526
-
Sara Golemon authored
Summary: In the case of the copy constructor, this change doesn't really matter, since it's deleted anyway. In the case of the move constructor, it fixes what was probably an unintentional hiding. The class certainly looks like it supports moving. Closes #121 Reviewed By: @yfeldblum Differential Revision: D2184131
-
Sara Golemon authored
Summary: svformat explicitly takes a container for direct indexing, but the format string used is per-arg, which corresponds to format/sformat. Closes #228 Reviewed By: @JoelMarcey Differential Revision: D2184334
-
Sara Golemon authored
Summary: Release builds should probably favor using @marpaia's brew Formula to get a release build. Leave the boostrap script around to simplify building from master. Closes #229 Reviewed By: @jwatzman Differential Revision: D2184416
-
Hannes Roth authored
Summary: Not sure if this is really undefined behavior or whether UBSAN is just super paranoid. Will try to read up on it later. I also changed some other `std::atomic` initialization to always follow the same pattern, let me know if I should revert those. I couldn't resist, OCD kicked in. idonthaveocd Reviewed By: @fugalh Differential Revision: D2181074
-
Sara Golemon authored
Summary: Extend the MacOS s6_addr16 hack to Net/Open/FreeBSD Closes #106 Reviewed By: @JoelMarcey Differential Revision: D2182912
-
Anton Likhtarov authored
Summary: See the comment for details Reviewed By: @nbronson Differential Revision: D2181231
-
James Sedgwick authored
Summary: This way, handlers can carry out more complex manipulations of the pipeline via ctx->getPipeline() without knowing the R/W types Reviewed By: @djwatson Differential Revision: D2158736
-
- 23 Jun, 2015 3 commits
-
-
191919 authored
Summary: Roughly described in https://github.com/facebook/hhvm/issues/5344. Closes #206 Reviewed By: @yfeldblum Differential Revision: D2170803 Pulled By: @sgolemon
-
Igor Sugak authored
Summary: It is fixed in gmock. No need to suppress it in sources. Reviewed By: @meyering Differential Revision: D2181564
-
Yedidya Feldblum authored
Summary: [Folly] instance Eq Unit Unit::operator==(const Unit&) Unit::operator!=(const Unit&) Reviewed By: @Gownta Differential Revision: D2179384
-
- 22 Jun, 2015 3 commits
-
-
Igor Sugak authored
Summary: Running clang-tidy to fix this problem, using script D2171334. I noticed that even without this change clang dev build succeeds for folly and opened a separate task to investigate why. Reviewed By: @markisaa Differential Revision: D2179299
-
Mike Kaplinskiy authored
Summary: This is slightly more correct than assuming that __APPLE__ is the only place this assumption breaks. Pulled from relevant section of folly-PR#95, other sections are either already applied by other fixes, or have been code-moved. Closes #95 Reviewed By: @jwatzman Differential Revision: D2178439
-
Adriano Melo authored
Summary: Tested on Mac OS X 10.10.3 and MacPorts 2.3.3. Closes #227 Reviewed By: @yfeldblum Differential Revision: D2176700 Pulled By: @sgolemon
-
- 21 Jun, 2015 2 commits
-
-
Sara Golemon authored
-
Yoni Lavi authored
new small_vector tests that fail on trunk and uncover a bug in emplace_back on references to memory inside the vector + a fix + perf improvement to const lvalue push_back Summary: emplace_back() on a small_vector applied on data inside the vector doesn't work properly. In standard vectors, this usage is required to work properly, but I'm not sure whether it should in small_vector. Consider fixing / adding a lint rule. Reviewed By: @yfeldblum Differential Revision: D2122931
-
- 19 Jun, 2015 5 commits
-
-
Ananth Jasty authored
Summary: Wrap asm("pause") in an inline so that it becomes asm("wfe") on aarch64. Closes #187 Closes #190 Reviewed By: @yfeldblum Differential Revision: D2152868 Pulled By: @sgolemon
-
Sam Merat authored
Summary: fixed then() exceptions propagation and added unit-test Reviewed By: @fugalh Differential Revision: D2159075
-
Vignesh Gowda authored
Summary: Moved abstraction layer for platform-specific bit-manipulation instructions from the EliasFanoCoding.h to Instructions.h since we will need to use it also for BitVectors: Reviewed By: @ot Differential Revision: D2165314
-
Nathan Bronson authored
Summary: SharedMutex has been in heavy production use for a while with no bugs reported and no API changes requested, it is no longer experimental. Reviewed By: @yfeldblum Differential Revision: D2165275
-
Marc Horowitz authored
Summary: dynamic's integer type is signed, so make sure array indices are not negative. (See https://our.intern.facebook.com/intern/tasks/?t=7445055) Reviewed By: @Gownta Differential Revision: D2145689
-
- 17 Jun, 2015 3 commits
-
-
James Sedgwick authored
Summary: Instead of the one-off Nothing struct Reviewed By: @yfeldblum Differential Revision: D2158621
-
James Sedgwick authored
Summary: Three strategies 1. Optimistic locking 2. Acquire-release memory ordering instead of full sequential consistency 3. Some low-hanging branch miss optimizations Please review carefully; the dogscience is strong with this one ``` Before: ============================================================================ folly/futures/test/Benchmark.cpp relative time/iter iters/s ============================================================================ constantFuture 127.99ns 7.81M promiseAndFuture 94.89% 134.89ns 7.41M withThen 28.40% 450.63ns 2.22M ---------------------------------------------------------------------------- oneThen 446.68ns 2.24M twoThens 58.35% 765.55ns 1.31M fourThens 31.87% 1.40us 713.41K hundredThens 1.61% 27.78us 35.99K ---------------------------------------------------------------------------- no_contention 4.63ms 216.00 contention 80.79% 5.73ms 174.52 ---------------------------------------------------------------------------- throwAndCatch 10.91us 91.64K throwAndCatchWrapped 127.14% 8.58us 116.51K throwWrappedAndCatch 178.22% 6.12us 163.32K throwWrappedAndCatchWrapped 793.75% 1.37us 727.38K ---------------------------------------------------------------------------- throwAndCatchContended 1.35s 741.33m throwAndCatchWrappedContended 139.18% 969.23ms 1.03 throwWrappedAndCatchContended 169.51% 795.76ms 1.26 throwWrappedAndCatchWrappedContended 17742.23% 7.60ms 131.53 ---------------------------------------------------------------------------- complexUnit 127.50us 7.84K complexBlob4 100.14% 127.32us 7.85K complexBlob8 100.16% 127.30us 7.86K complexBlob64 96.45% 132.19us 7.57K complexBlob128 92.83% 137.35us 7.28K complexBlob256 87.79% 145.23us 6.89K complexBlob512 81.64% 156.18us 6.40K complexBlob1024 72.54% 175.76us 5.69K complexBlob2048 58.52% 217.89us 4.59K complexBlob4096 32.54% 391.78us 2.55K ============================================================================ After: ============================================================================ folly/futures/test/Benchmark.cpp relative time/iter iters/s ============================================================================ constantFuture 85.28ns 11.73M promiseAndFuture 88.63% 96.22ns 10.39M withThen 30.46% 279.99ns 3.57M ---------------------------------------------------------------------------- oneThen 231.18ns 4.33M twoThens 60.57% 381.70ns 2.62M fourThens 33.52% 689.71ns 1.45M hundredThens 1.49% 15.48us 64.58K ---------------------------------------------------------------------------- no_contention 3.84ms 260.19 contention 88.29% 4.35ms 229.73 ---------------------------------------------------------------------------- throwAndCatch 10.63us 94.06K throwAndCatchWrapped 127.17% 8.36us 119.61K throwWrappedAndCatch 179.83% 5.91us 169.15K throwWrappedAndCatchWrapped 1014.48% 1.05us 954.19K ---------------------------------------------------------------------------- throwAndCatchContended 1.34s 749.03m throwAndCatchWrappedContended 140.66% 949.16ms 1.05 throwWrappedAndCatchContended 164.87% 809.77ms 1.23 throwWrappedAndCatchWrappedContended 49406.39% 2.70ms 370.07 ---------------------------------------------------------------------------- complexUnit 86.83us 11.52K complexBlob4 97.42% 89.12us 11.22K complexBlob8 96.63% 89.85us 11.13K complexBlob64 92.53% 93.84us 10.66K complexBlob128 90.85% 95.57us 10.46K complexBlob256 82.56% 105.17us 9.51K complexBlob512 74.13% 117.12us 8.54K complexBlob1024 63.67% 136.37us 7.33K complexBlob2048 50.25% 172.79us 5.79K complexBlob4096 26.63% 326.05us 3.07K ============================================================================ ``` Reviewed By: @djwatson Differential Revision: D2139822
-
Praveen Kumar authored
Summary: Directly pass the arguments to respective constructors. Instead of first making temporary and then pass that. Closes #218 Reviewed By: @yfeldblum Differential Revision: D2156978 Pulled By: @sgolemon
-
- 16 Jun, 2015 3 commits
-
-
Sara Golemon authored
-
Sarang Masti authored
Summary: Fix leaks in unit tests Reviewed By: @djwatson Differential Revision: D2153681
-
Giuseppe Ottaviano authored
Summary: It is often useful to retrieve the value preceding the current value in an Elias-Fano iterator, for example when the list represents adjacent ranges. This diff implements a new method `previousValue` in `EliasFanoReader`. It also adds a new `kUnchecked` boolean template argument to `EliasFanoReader` which skips bounds checking. Reviewed By: @philippv Differential Revision: D2155049
-
- 15 Jun, 2015 3 commits
-
-
James Sedgwick authored
Summary: add remove<T>, remove(Handler*), removeFront(), removeBack() to Pipeline employ these to fix up reusing client pipelines with client dispatchers, which in turn fixes the broken ServiceTest Reviewed By: @djwatson Differential Revision: D2152636
-
Nathan Bronson authored
Summary: AtomicUnorderedInsertMap is a concurrent hash table that firmly at the performance end of the generality <-> performance spectrum. If you don't need updates (or can use your own concurrency control when overwriting values), you never need to delete, and you can predict your capacity perfectly, then you will get wait-free reads, lock-free inserts, safe concurrent iteration, and excellent cache and performance outlier behavior. Arbitrary key and value types are supported. Reviewed By: @yfeldblum Differential Revision: D2145281
-
Woo Xie authored
Summary: the openssl improvement does not support compression and decompression. Reviewed By: @Invalid auth token., @afrind Differential Revision: D2151003
-