- 05 Jul, 2016 2 commits
-
-
Adam Simpkins authored
Summary: In the ConnectTFOTimeout and ConnectTFOFallbackTimeout tests in AsyncSSLSocketTest.cpp, the client runs for 1ms before timing out and quitting. It may end up shutting down the server thread before the server has even received the TCP connect callback. If this happened it would cause the test to fail, since the server code checked to make sure the callback was invoked. This diff creates a new ConnectTimeoutCallback server-side callback for these tests to use, which doesn't care if it gets told about a new connection or not. Reviewed By: siyengar Differential Revision: D3512809 fbshipit-source-id: ce77fe944fb06a38a84c1458356f161cec7387b3
-
Subodh Iyengar authored
Summary: Some platforms like Apple add a additional field to sockaddr called sa_len. This is not normally required by POSIX, so all posix methods work correctly when a sockaddr is passed in without a sa_len set. However other functions which are not defined by posix such as connectx require this field to operate correctly. Reviewed By: yfeldblum Differential Revision: D3514266 fbshipit-source-id: f8e2941f337222486c81c911dbd06a2ce35e4f00
-
- 02 Jul, 2016 8 commits
-
-
Jim Meyering authored
Summary: The ThreadLocal.SharedLibrary test would fail when compiled with any sanitizer. Skip that test when any sanitizer is enabled. Reviewed By: Mizuchi Differential Revision: D3508099 fbshipit-source-id: 0419269f6454ee4edb93fe00b6f0e79756e609d0
-
Christopher Dykes authored
Summary: There are two types of includes this adds. The first are standard library headers that weer previously included by transitive dependencies, but aren't included under MSVC, so need to be explicitly included. The second type is a couple of portability headers. Reviewed By: yfeldblum Differential Revision: D3513196 fbshipit-source-id: 4f2ac1207aee887ba41c19f5490003e5fe4088f4
-
Christopher Dykes authored
Summary: Because MSVC doesn't let you do this. Separate the tests out and disable the entire thing instead. Reviewed By: yfeldblum Differential Revision: D3513174 fbshipit-source-id: 7411418204083f172883ca96eff3785c912a9647
-
Christopher Dykes authored
Summary: Because MSVC doesn't support VLAs. Reviewed By: yfeldblum Differential Revision: D3513143 fbshipit-source-id: 256e9e843004a3c37821b3dddc6ecd4c6b5645d9
-
Christopher Dykes authored
Summary: As per http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution the behavior of using `uint8_t` as the template parameter is undefined, and is not supported on MSVC, so use `unsigned short` instead, which is a defined form. Reviewed By: yfeldblum Differential Revision: D3507309 fbshipit-source-id: c4c830371d08aee4a3de90bb394d22d92ad9a575
-
Christopher Dykes authored
Summary: Because MSVC doesn't support VLA's. Reviewed By: yfeldblum Differential Revision: D3507441 fbshipit-source-id: a50bdbad31674d236e4994903c75232d70f32bc0
-
Christopher Dykes authored
Summary: Which means `.native()` returns a `wstring`, and `.c_str()` returns a `wchar_t*`. As we're using them in places expecting a `char*`, convert to `string` first. Reviewed By: yfeldblum Differential Revision: D3506911 fbshipit-source-id: ca34b9888f98106914438490bbd860f9b922ad5e
-
Aravind Anbudurai authored
Summary: I introduced a helper method to make an AutoTimer and forced default move-ctor. That caused moved object's destruction to log and that is undesirable. This defines a custom move-ctor to set a direct the moved object to not log. Reviewed By: yfeldblum Differential Revision: D3511206 fbshipit-source-id: 38ae6de5fe76077c5e5ed10f64ebe959f5674fa7
-
- 01 Jul, 2016 16 commits
-
-
Adam Simpkins authored
Summary: The ThreadLocalTest has been broken in open source builds ever since D2678401, because Makefile.am was never updated to build the helper shared library needed by the test. This updates Makefile.am to build the shared library. Reviewed By: yfeldblum Differential Revision: D3511125 fbshipit-source-id: 4684dbc32acf6ffbfc07079da91a1da480259502
-
Aravind Anbudurai authored
Summary: Currently, AutoTimer outputs duration as a double with seconds as units. This is limiting and I'm making it return std::chrono::duration. Users can specify the type with DurationType. This is needed for me because the library that I am going to use inside the callback I pass in using chrono::duration and it feels hacky to go from duration -> double -> duration. Reviewed By: yfeldblum Differential Revision: D3506557 fbshipit-source-id: 0a5e9e16181bfac3a10df6a253716c0499cff5df
-
Christopher Dykes authored
Summary: As per http://en.cppreference.com/w/cpp/concept/UniformRandomBitGenerator it was almost there, except that `min()` and `max()` need to be static members. Reviewed By: yfeldblum Differential Revision: D3507595 fbshipit-source-id: 5e0b321c477e37ab8a3487ad643caa83cc6cfc9d
-
Aravind Anbudurai authored
Summary: Somehow the formatting is messed up and it was triggering my OCD. Sending a diff before I go crazy Depends on D3506557 Reviewed By: yfeldblum Differential Revision: D3506618 fbshipit-source-id: 218ce2100cc45c5017328e97344029061fe2eff5
-
Christopher Dykes authored
Summary: MSVC doesn't support them, so use `__VA_ARGS__` instead. Reviewed By: yfeldblum Differential Revision: D3507071 fbshipit-source-id: 186834c87e74257c709fcbc08e3bda7b1b55d02b
-
Christopher Dykes authored
Summary: The portability headers exist for a reason, so use them. Reviewed By: yfeldblum Differential Revision: D3507031 fbshipit-source-id: f88c8ed37e648d38231c1d923c1d69d551beabff
-
Christopher Dykes authored
Summary: Because MSVC doesn't support strings with multi-byte Unicode code points in them unless it's in a UTF-8 string. Reviewed By: yfeldblum Differential Revision: D3507197 fbshipit-source-id: 27bff1efee03180716418fbfa9ef98f9c04929d9
-
Christopher Dykes authored
Summary: Because `typeof` is a GCC specific extension whose standardized version is called `decltype`. Reviewed By: yfeldblum Differential Revision: D3506960 fbshipit-source-id: 0e7495028632b23f149bf8d0163d2000ebec2fcc
-
Christopher Dykes authored
Summary: Because `SIZE` is a defined type on Windows. Reviewed By: yfeldblum Differential Revision: D3507144 fbshipit-source-id: ee9fd9bb7c35055ca69719717aa10d8e9c8701c2
-
Christopher Dykes authored
Summary: Because `uint32_t` is standardized, and MSVC doesn't have `uint`. Reviewed By: yfeldblum Differential Revision: D3507011 fbshipit-source-id: ac0abb4ad1b2dbaa890554589817ce75abdd987e
-
Christopher Dykes authored
Summary: Because MSVC doesn't support VLAs. Reviewed By: yfeldblum Differential Revision: D3506835 fbshipit-source-id: 8683b5c513ed25e7f47642c8493f8b10da9906be
-
Christopher Dykes authored
Summary: MSVC was correctly warning that we were initializing `float` variables with `double` literals. This just adds the explicit suffix so they are `float` literals instead. Reviewed By: yfeldblum Differential Revision: D3506797 fbshipit-source-id: 7eb4588958eddb984ba830e2599ac505d495783e
-
Christopher Dykes authored
Summary: Thus `1UL << 63 == 0` which is not the intended behavior. Reviewed By: yfeldblum Differential Revision: D3478480 fbshipit-source-id: a31dba7f5a503be2b34a4cb66bc7039076f158a0
-
Christopher Dykes authored
Summary: THe issue is quite simple: Regardless of the control flow, the previous implementation of this was instantiating `ApplyVisitor1<V,R>` which declares a return type, but never returns. This refactors `ApplyVisitor1` and `ApplyConstVisitor1` so that the part of the control flow that was previously never reached simply doesn't exist anymore. Reviewed By: yfeldblum Differential Revision: D3479584 fbshipit-source-id: 605a48e39bba6dc14df1af1e76b55ea60f3e69d5
-
Christopher Dykes authored
Summary: Because it is defined as a macro that calls a function to get the error stream. It is also defined as a macro in musl libc. Reviewed By: yfeldblum Differential Revision: D3506283 fbshipit-source-id: 0652288adfe64010798017e46d962fdc18d2ff56
-
Misha Shneerson authored
Summary: moved stop_watch to folly defined aliases for backward compact. These alias will be removed in next diff. Reviewed By: juchem Differential Revision: D3474035 fbshipit-source-id: 74ee8bb7f2db46434c937eecf121d1cba473178a
-
- 30 Jun, 2016 3 commits
-
-
Tianjiao Yin authored
Reviewed By: yfeldblum Differential Revision: D3501266 fbshipit-source-id: 2ac3b6e2785792ccc45f4568ceff7fd05f0262f3
-
Aravind Anbudurai authored
Summary: Currently, AutoTimer works only with FunctionObjects that are default constructible because it constructs Logger each time it needs to log. This diff makes AutoTimer work with closures too. This will help in making AutoTimer more flexible because the user can capture necessary dependencies in the lambda. This diff also cleans up the constructors on AutoTimer by making it take an std::string&& instead of Args... that is passed into folly::to<..>. Although this makes the instantiation a bit harder, the simplicity of constructor seems worth it. This also refactors the callsites of setMinLogTime to directly pass the value into the ctor and changes callsites on fbcode Reviewed By: yfeldblum Differential Revision: D3487868 fbshipit-source-id: 52fa1099a5e39b791972cc0d3f678d44ea4ba288
-
Scott Michelson authored
Summary: This gives each eventbase a wheeltimer. Construction is on demand, so there's no penalty if it isn't used. Why do this? 3 immediate reasons: 1) some clients already do this outside of the interface: diffusion/FBS/browse/master/fbcode/servicerouter/client/common/ThriftDispatcher.h$302,607?view=highlighted 2) inefficient timers can be easily avoided: diffusion/FBS/browse/master/fbcode/thrift/lib/cpp2/async/HeaderClientChannel.h;64fb260ea4bd235ba79414a78002fd68cf0453a8$319 3) D2379210 indicates we can do a better job with this than cob timeout Reviewed By: andriigrynenko, djwatson Differential Revision: D3460792 fbshipit-source-id: a7bb6fdd90ca95b6aef8af952d7a66dd0dc260c1
-
- 29 Jun, 2016 4 commits
-
-
Eric Niebler authored
gcc-4.8 is not decaying types correctly in lambda init captures. Help it out. Fixes open source build. Summary: Trivial change gets folly::ThreadLocal building again with gcc-4.8, needed by the Open Source build. Reviewed By: chadparry, yfeldblum Differential Revision: D3498657 fbshipit-source-id: cf36f2bef7f1d03d133d16bfd063f7a2ce681822
-
Mirek Klimos authored
Summary: with the added blocks, pointer to RequestContext needs to be captured by value, not reference Differential Revision: D3499921 fbshipit-source-id: 76ff22869228fbdd7ef1651cd2814550f6abc301
-
Eric Niebler authored
Summary: 'make check' is failing since the path to OpenSSLHashTest.cpp is wrong and because ssl_test is not linked to libcrypto. Reviewed By: mhx Differential Revision: D3498207 fbshipit-source-id: 0f443d1f1b76c537d211dc148df0cd3fdfb8eead
-
Mirek Klimos authored
Summary: RequestContextScopeGuard should be preferred to RequestContext::create because it makes sure that RequestContext is cleared afterwards - need to create more examples of this in the codebase, migrating unit tests should be safe Reviewed By: interwq Differential Revision: D3489969 fbshipit-source-id: 202fec93116db3d435c108fafecad26a4ed9b603
-
- 27 Jun, 2016 2 commits
-
-
Marcus Holland-Moritz authored
Summary: In order to be consistent with integral-to-bool conversion, this change allows conversion from floating point values to bool following the same rule that is to be consistent with C(++) conventions. Also, any arithmetic value can be converted to bool without potential for undefined behaviour, so no extra checks are required. Differential Revision: D3483760 fbshipit-source-id: 024b58d348ef679079aba4d9d5277acb46aba2a1
-
Bo You authored
Summary: Right now in ##parseNumber## in ##folly/json.cpp##, when a negative number is provided, both the minus sign and the digits are stored in the variable ##integral##: https://fburl.com/362938516. This causes problem when the exact min int is provided (-9223372036854775808). Because now ##integral.size()## equals 20 (including the minus sign), which is greater than ##maxIntLen## (which is 19). We need to handle negatives separately to get the correct result. Reviewed By: yfeldblum Differential Revision: D3479054 fbshipit-source-id: 15c782962a5f5ee845a2a18f2145c7695ec2d546
-
- 26 Jun, 2016 1 commit
-
-
David Lam authored
Summary: #accept2ship Reviewed By: Orvid Differential Revision: D3486732 fbshipit-source-id: 45bfe1daa1dbd1e427fcd18e71e6b9eeb6d6b2b7
-
- 25 Jun, 2016 1 commit
-
-
Eric Niebler authored
Summary: [temp] (14)/6: > A function template, member function of a class template, variable template, or static data member of a class template shall be defined in every translation unit in which it is implicitly instantiated (14.7.1) unless the corresponding specialization is explicitly instantiated (14.7.2) in some translation unit; no diagnostic is required. `-Wundefined-var-template` warns on any implicit instantiations that are needed but could not be performed because the definition is not available. In particular, for valid code, this warns on templates/temploids which have their definition and all relevant explicit instantiations tucked away in some source file (but for which no explicit instantiation declarations are provided in the relevant header file) - used a few times in folly. This seems a bad style, the static data member template should either be defined in the header file or should be explicitly instantiated in each .cpp file. Reviewed By: igorsugak Differential Revision: D3447679 fbshipit-source-id: 22c90c19e2c7a9b6d772058f2c7e350b890b6c0a
-
- 24 Jun, 2016 3 commits
-
-
Haocheng Zhang authored
Reviewed By: luciang Differential Revision: D3407128 fbshipit-source-id: 2c00387d6e068f9e052f539198ae2f985d265c74
-
Marcus Holland-Moritz authored
Summary: On Android, std::nextafter isn't implemented. However, the C functions and compiler builtins are still provided. This change adds a portability abstraction as folly::nextafter. Reviewed By: mzlee, yfeldblum Differential Revision: D3478081 fbshipit-source-id: 54fec1ca8bdec24ba45d51e07020259fdbae61b4
-
Huapeng Zhou authored
Summary: There are use cases where 1). the underlying buffer is externally managed (e.g. by a slab allocator) and 2). we need to do bookkeeping when the wrapped IOBuf gets destroyed (e.g. reference counting). This diff adds a another method to mark the underlying buffer as shared with the external memory management mechanism. The `takeOwnership` doesn't meet the criteria since it assumes the ownership of the buffer, while in this case we need to signal it as externally managed so that hopefully callers won't try to modify the underlying buffer. Reviewed By: simpkins Differential Revision: D2662954 fbshipit-source-id: e908c3ebeeefe9a5d332c75070f377fb1dad5acb
-