- 13 Jun, 2017 2 commits
-
-
Adam Simpkins authored
Summary: Update the logging library so that FB_LOG() and FB_LOGF() also accept streaming style arguments: FB_LOG(logger) << "logs can be written like this now: " << 1234; FB_LOG(logger, "both styles can be used") << " together"; FB_LOGF(logger, "test: {}, {}", 1234, 5678) << " and with FB_LOGF() too"; Streaming support does make the upcoming XLOG() macros more complicated to implement, since the macro has to expand to a single ternary `?` expression. However I was able to come up with a solution that works and has minimal overhead. Reviewed By: wez Differential Revision: D5082979 fbshipit-source-id: 11734e39c02ad28aceb44bbfbd137d781caa30cf
-
Adam Simpkins authored
Summary: This begins adding a new logging library for efficient, hierarchical logging. This includes the basic library framework, plus a README file with a brief overview and the motivation for creating a new logging library. Reviewed By: wez Differential Revision: D4911867 fbshipit-source-id: 359623e11feeaa547f3ac2c369bf806ee6996554
-
- 12 Jun, 2017 1 commit
-
-
Theo Najim authored
Summary: Closes https://github.com/facebook/folly/pull/609 Differential Revision: D5228342 Pulled By: Orvid fbshipit-source-id: edb81284a0401a4ea267310e1ca01c390bcdfb32
-
- 10 Jun, 2017 3 commits
-
-
Tianjiao Yin authored
Summary: 2_ms seems too short. I am not sure whether it's feasible to check whether thread is waiting for an address. We could wait for longer to reduce false alarm. Reviewed By: nbronson Differential Revision: D5220819 fbshipit-source-id: 42f31206e9cb7f9addaa049d0e7cd995f6735f6c
-
Yedidya Feldblum authored
Summary: [Folly] Let `SubprocessError` inherit `std::runtime_error`. As an added bonus, this gives it `std::runtime_error`'s refcounted string for cheap copies. Reviewed By: ericniebler Differential Revision: D5216758 fbshipit-source-id: 43298e06f02cfd88abf2d73f7aa16117a6cb052b
-
Christopher Dykes authored
Summary: The source and tests for the stats directory was spread across folly/detail and folly/test, move them into folly/stats directly instead. Reviewed By: yfeldblum Differential Revision: D5216810 fbshipit-source-id: 00a8bb95a4f7830d0bc46b3f914f256a37833b78
-
- 09 Jun, 2017 7 commits
-
-
Victor Gao authored
Summary: Use clang-tidy to mechanically add missing `override` and remove redundant `virtual`. Reviewed By: igorsugak Differential Revision: D5211868 fbshipit-source-id: 6a85f7c4a543a4c9345ec5b0681a8853707343dc
-
Victor Gao authored
Summary: Use clang-tidy to mechanically add missing `override` and remove redundant `virtual`. Reviewed By: igorsugak Differential Revision: D5211868 fbshipit-source-id: 4118c4c72f8ec3485507f69679f7e852b3eaeb73
-
Yedidya Feldblum authored
Summary: [Folly] Saner test exception in `ExceptionWrapperTest.cpp`. Make construction do the work and make `what()` free. Reviewed By: andrewjcg Differential Revision: D5216707 fbshipit-source-id: bfb4c2473a61ff7da7a3a01adc85facae30d6586
-
Anirudh Ramachandran authored
Summary: Add a few more compatibility wrappers for pre-1.1.0 APIs Reviewed By: yfeldblum Differential Revision: D5194164 fbshipit-source-id: ae8db08c31370eca729df2927798b6f4d99ee70c
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/gen/` (template decls). Reviewed By: Orvid Differential Revision: D5216229 fbshipit-source-id: 1659f1944ccde4de39bccd189bb6490395cf29c2
-
Christopher Dykes authored
Summary: This is entirely the wrong way to include these headers, and is being included within an anon namespace so just wrong. Reviewed By: yfeldblum Differential Revision: D5215065 fbshipit-source-id: 499df58c0202f7a1d4482eaa6a0e8b2e1535c763
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/experimental/exception_tracer/` (headers). With some manual rearrangement in the places where `clang-format` does awkward things, with the result that `clang-format` over the listed directory becomes a no-op. Reviewed By: Orvid Differential Revision: D5215212 fbshipit-source-id: 5570f02c238b1874adbc2ff4150f465c947ad0e6
-
- 08 Jun, 2017 5 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/fibers/` With some manual rearrangement in the places where `clang-format` does awkward things, with the result that `clang-format` over `folly/fibers/` becomes a no-op. Reviewed By: igorsugak Differential Revision: D5178118 fbshipit-source-id: ae65ff1902666ba9106e18f916bb1d10e6406bf4
-
Christopher Dykes authored
Summary: Otherwise downstream Windows users have to explicitly disable MSVC's warnings about unknown pragmas. Reviewed By: yfeldblum Differential Revision: D5211415 fbshipit-source-id: 42871e03895010818c7e1cb6e57c1885970e98c2
-
Christopher Dykes authored
Summary: Folly is a C++ library not a C library, and (almost) universally uses `nullptr` everywhere, so refer to `nullptr` rather than `NULL`. This also fixes the 1 place in our actual code where we were using `NULL` rather than `nullptr`. Reviewed By: yfeldblum Differential Revision: D5204766 fbshipit-source-id: 2a5d5011a28d7d5dd48789f60643a656f51b9732
-
Eric Niebler authored
Summary: FixedString.h has a workaround for a gcc bug regarding erroneous -Werror=array-bounds errors. This commit extends the workaround to the gcc-5 series, which sadly is still broken. Life gets better with gcc-6. Reviewed By: luciang Differential Revision: D5210633 fbshipit-source-id: 4fcf080d18ddc573636a3e58b61a97167a8c06ce
-
Qi Wang authored
Summary: Make extent hooks static and avoid calling arena_destroy, in case there are alive allocations not freed yet. Reviewed By: yfeldblum Differential Revision: D5208102 fbshipit-source-id: 612c772347cd90227fa303fd0b059edbaeb7d4e2
-
- 07 Jun, 2017 12 commits
-
-
Christopher Dykes authored
Summary: I thought I had already implemented this, but apparently I had only implemented the ll variable. Whoops. This implements the 32-bit version which fixes the build on Windows. Reviewed By: yfeldblum Differential Revision: D5203680 fbshipit-source-id: 02b133db59e232cac586944b0ffc0e8bbf5f533a
-
Christopher Dykes authored
Summary: The directory contains benchmarks and multiple `main`'s so shouldn't be included as part of the main folly library. Reviewed By: yfeldblum Differential Revision: D5204132 fbshipit-source-id: 7289cb9c2ec292c13df39c9e7b48eca4166ca951
-
Yedidya Feldblum authored
Summary: [Folly] Pass `Try` by rvalue ref in `onError` implementation. As is done in other overloads and in `thenImplementation`. For consistency. Reviewed By: spacedentist Differential Revision: D5199302 fbshipit-source-id: c78db0c36fc7a0b846ca5e44fc237422c9203a24
-
Sonia Mar authored
Summary: Update tuple generated for hash/equal_to for `folly::Uri` to also use std::string Reviewed By: Orvid Differential Revision: D5199266 fbshipit-source-id: bcd619dae01ffbf82fbb5c8987b0e87103572452
-
Kyle Nekritz authored
Reviewed By: anirudhvr Differential Revision: D5193205 fbshipit-source-id: 5b427ee4f31008518078f5e54e85c0f0f2201da5
-
Yedidya Feldblum authored
Summary: [Folly] Shrink the implementations of `then` and `onError`. Just a small refactor. Reviewed By: spacedentist Differential Revision: D5180784 fbshipit-source-id: a399d18500a2b4c5d8f24dee54891cca802b4461
-
Yedidya Feldblum authored
Summary: [Folly] `Try::tryGetExceptionObject`. If the `Try` has a `std::exception` for the non-template overload or a `From` where `is_convertible<From*, Ex*>` for the template overload parameterized by `typename Ex`, returns a pointer to it. Otherwise returns `nullptr`. Reviewed By: spacedentist Differential Revision: D5180848 fbshipit-source-id: b7593b7459259f9a1e1e78b36d548e55d086e722
-
Yedidya Feldblum authored
Summary: [Folly] Remove `exception_wrapper::throwException`. It has been renamed to `throw_exception`. Reviewed By: Orvid Differential Revision: D5181005 fbshipit-source-id: 442b3fd9bdaa8170db504a81651cbb085ea50624
-
Nick Terrell authored
Summary: Add streaming interface to the ZlibCodec. Implement ZlibStreamCodec::doCompress() and ZlibStreamCodec::doUncompress() using the streaming interface. fbgs CodecType::ZLIB and check that no caller requires thread-safety. I found one caller, but it was fixed in D5090855. Reviewed By: yfeldblum Differential Revision: D5169338 fbshipit-source-id: 40478e162143623ad28fd8bc937d0195521f13fe
-
Christopher Dykes authored
Summary: Using fbstring directly is not really worthwhile in the vast majority of cases, especially when most places just convert it into an `std::string` immediately. Reviewed By: yfeldblum Differential Revision: D5187835 fbshipit-source-id: 6f7d71612d3765e8b501d2432cd6281369bfe0fa
-
Anirudh Ramachandran authored
Summary: Now that it's possible, let's add some 1.1.0 tests to avoid regressing 1.1.0 support Reviewed By: yfeldblum Differential Revision: D5167246 fbshipit-source-id: ba12414504131697d4e0757c9c340a66f810acd4
-
Giuseppe Ottaviano authored
Summary: We cannot guarantee the correct destruction order of the Meyers singleton owning the allocator, and the objects allocated with it, so we just leak it using `Indestructible`. Reviewed By: djwatson Differential Revision: D5196227 fbshipit-source-id: ec07ab1e21af7814194883b252d45aa36d2a04b1
-
- 06 Jun, 2017 10 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Rename `exception_wrapper::get_object` to `get_exception`. This will be a template overload of the existing non-template member `get_exception`, but it should just work. Reviewed By: spacedentist Differential Revision: D5180845 fbshipit-source-id: 28e16e039ec6a7939b38f217b4ad5c6bc803f515
-
Adam Simpkins authored
Summary: - Fix TimePoint to use steady_clock rather than system_clock - Use nanoseconds instead of milliseconds in most locations This code should probably also be moved into a folly::testing namespace or something. This class is pretty specific to unit tests, and `folly::TimePoint` seems like too generic of a name for it. However, just to keep things simple I'm not doing that as part of this diff yet. Reviewed By: yfeldblum Differential Revision: D5175630 fbshipit-source-id: 26490fc7ff1b25fb86f09309e81108828cd0f091
-
Adam Simpkins authored
Summary: Use the newly introduced getOSThreadID() function to get a thread ID for determining thread scheduling information on Linux. Reviewed By: yfeldblum Differential Revision: D5173596 fbshipit-source-id: 3e6fa352c3774986b0ac1f93bd6c7e4a29e08471
-
Adam Simpkins authored
Summary: Some of the code in TimeUtil.cpp computes how long the current thread has spent waiting to be schedule on the CPU, so we can discount this time when testing timeout behavior. It appears that this code has been broken for a fairly long time. Older Linux kernels reported values in /proc/<pid>/schedstat using jiffies. However, it appears that this was changed in Linux 2.6.23 to report values using nanoseconds. (It looks to me like this was changed in commit 425e0968a25f, which purports to simply be moving code from sched.c to sched_stats.h, but it appears to also have also changed this behavior.) This updates TimeUtil.cpp to compute the value correctly in modern Linux kernels. Reviewed By: yfeldblum Differential Revision: D5173598 fbshipit-source-id: 98436d3a687400bf68661156ffce93eea7232632
-
Dave Watson authored
Summary: Adds a core-local allocator to CacheLocality. Multiple objects using cache locality may share the same allocator, and allocate things less than cacheline sized, without incurring additional false-sharing overhead. Reviewed By: nbronson, ot Differential Revision: D5139886 fbshipit-source-id: a9804662d6339829a12e0791f418dabd9678f1bf
-
Christopher Dykes authored
Summary: `kDecayCmd` was guarded such that it wasn't being defined at all if JEMalloc wasn't available. Closes https://github.com/facebook/folly/issues/608 Reviewed By: interwq Differential Revision: D5193721 fbshipit-source-id: 1a2666de70e90eac1e9f2e130d0452b01b3239fa
-
Victor Zverovich authored
Summary: This diff adds a Traits template parameter to IndexedMemPool that allows more control over the lifetime management of individual elements, including mixes of lazy and eager recycle semantics (or colocation of different classes of data inside a single element). It also arranges that an index is not reported as isAllocated() until it has been passed to Traits::initialize and passed to Traits::onAllocate at least once, so code that is traversing valid indexes doesn't need to deal with the post-initialize but pre-onAllocate state (it must still deal with indexes that reported isAllocated() as true but have since been passed to onRecycle). The default behavior is unchanged. Reviewed By: nbronson Differential Revision: D5177462 fbshipit-source-id: e7d22c860ab6bf25083977dfb5a63955641c9cfb
-
Christopher Dykes authored
Summary: MemoryMapping doesn't use fbstring directly at all, so this include isn't needed. Reviewed By: yfeldblum Differential Revision: D5188209 fbshipit-source-id: d86b876a96343c830295bea1162580215a340815
-
Adam Simpkins authored
Summary: The syscall() function is defined in <unistd.h> <sys/syscall.h> apparently only defines IDs to be used with syscall(), but does not define the syscall() function itself. This caused build failures for files that included ThreadId.h before unistd.h Reviewed By: Orvid Differential Revision: D5189658 fbshipit-source-id: 2ec8ea1d58f3fc14cf458a53ecaa811978527398
-
Nathan Bronson authored
Summary: This diff adds helper functions that can resize std::string or std::vector without constructing or initializing new elements. They are designed for retroactively optimizing code where touching every element twice (or touching never-used elements once) shows up in profiling, and where restructuring the code to use fixed-length arrays or IOBuf-s would be difficult. Implementations are provided for 5 string implementations (pre-c++11 libstdc++, libstdc++ with SSO, libc++, std::basic_fbstring, and MSVC) and 3 vector implementations (libstdc++, libc++, and MSVC). On an unsupported platform you will hopefully get a #warn if you include UninitializedMemoryHacks.h followed by a linker error if you actually use it. Reviewed By: yfeldblum Differential Revision: D5102679 fbshipit-source-id: 536c00eabae4cdb8a0affe3e919a372f4dc51ac5
-