- 02 Feb, 2017 1 commit
-
-
Christopher Dykes authored
Summary: They were based on the signatures of the original functions as defined by MSVC. They should be based on the signatures as defined by Posix instead. Reviewed By: yfeldblum Differential Revision: D4471711 fbshipit-source-id: 8a6fd60ba2b326ca57058c119fc77c46f1d21d10
-
- 01 Feb, 2017 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Assorted cleanups for `folly/portability/BitsFunctexcept.h`. Reviewed By: Orvid, smeenai Differential Revision: D4492264 fbshipit-source-id: 5e85ac2ad96ef84627cc5473ec0b16c4c9b5da26
-
Scott Michelson authored
Summary: In many cases where MPMCQueue would be used, it's useful to be able to prioritize requests. This implements a thin wrapper on MPMCQueue to accomplish this (albeit in a bit of a memory inefficient way) Reviewed By: haijunz Differential Revision: D4465498 fbshipit-source-id: 6630b80ccf3138b5c135e7f7f281133b37d82b4d
-
Christopher Dykes authored
Summary: This results in a more uniform API within Folly, allowing for a more uniform API to use outside of Folly. Reviewed By: yfeldblum Differential Revision: D4471471 fbshipit-source-id: f798a6498bd1a05ed12adea362ff4aedd25789ee
-
Christopher Dykes authored
Summary: `clock_gettime(CLOCK_REALTIME)` is based on `std::system_clock` on Windows, but that only has a resolution that's the same as `FILETIME` (100s of nanoseconds), so modernize things and use `std::chrono::high_resolution_clock` which is intended for this purpose. Reviewed By: yfeldblum Differential Revision: D4476671 fbshipit-source-id: 3db1debc8f408f689b5c9fe1966a72b8dad4da93
-
- 31 Jan, 2017 3 commits
-
-
Igor Adamski authored
Summary: When start() throws because of reasons (in my case it was std::system_error("Resource temporarily unavailalble") coming from std::thread constructo) and during the exception propagation we will have to destroy FunctionScheduler then thread_.join() in shutdown will throw again. This diff sets running_ after the thread is created. Reviewed By: yfeldblum Differential Revision: D4469816 fbshipit-source-id: cde54dfbf39f04d3ea9dfa02a65295f5440e5ea4
-
Phil Willoughby authored
Summary: Because it's impossible to require that a parameter to a function is a compile-time constant string this replaces `shellify()` with the user-defined-literal suffix `_shellify()`. It's trivial to convert previously-correct code: `shellify("whatever {}", A)` => `"whatever {}"_shellify(A)` The previous `folly::shellify()` API is still present as a transition measure. Compilers will issue a deprecation warning if it is used. Reviewed By: yfeldblum Differential Revision: D4435512 fbshipit-source-id: 6639cd91280dc72108e47a8a7775c5160a4e644f
-
Michael Lee authored
Summary: Different deployments of don't always have access to crt_externs.h. Reviewed By: yfeldblum, Orvid Differential Revision: D4480621 fbshipit-source-id: f0b18d15fa253d6ba28dee68859cf9a34bf41255
-
- 30 Jan, 2017 2 commits
-
-
Michael Lee authored
Summary: Missed a `\` Reviewed By: Orvid Differential Revision: D4483602 fbshipit-source-id: 91451c3476756125abdbd0dd98ab9fb38bcf2c32
-
Michael Lee authored
Summary: TestUtil is primarily a temporary file and temporary directory. Split out the env variable manipulation into a different file. Reviewed By: Orvid Differential Revision: D4482071 fbshipit-source-id: 9d1a4a08010a8fad270aa56a7e1432829eb6484c
-
- 29 Jan, 2017 1 commit
-
-
Michael Lee authored
Summary: The forward declaration of `extern char ** environ` is inconsistent on some platforms. Reviewed By: strager, Orvid Differential Revision: D4474856 fbshipit-source-id: c73a7c7d5a247e962fab06aeb65df7815f0e3bcb
-
- 28 Jan, 2017 2 commits
-
-
Jason Rahman authored
Summary: For debugging purposes, it's often extremely useful to have the duration of the expired timeout in the exception message (in case the timeout was excessively low, or to understand exactly how long the operation ran before failing due to timeout). Here we make a best effort to include the timeout when possible. Reviewed By: yfeldblum Differential Revision: D4476038 fbshipit-source-id: f2d0aa5e1f6367a3cfe20579c27577ab91fd8d9c
-
Christopher Dykes authored
Summary: Adjusting the iteration count significantly reduces the runtime of the `TLRefCount.Stress` test to ~5 seconds. Working with that same timeframe, we can get away with increasing the iteration count of the (now tested) `RCURefCount.Stress` test to 100k, up from it's previous 10k. Reviewed By: markisaa Differential Revision: D4477750 fbshipit-source-id: 6a89dbb65f460655db0cb33926cc331dc1904f1c
-
- 27 Jan, 2017 4 commits
-
-
Phil Willoughby authored
Summary: `folly::literals` is to `folly` what `std::literals` is to `std`. More importantly we should be consitent; snake_case is how other folly sub-namespaces are named, such as: `array_detail` `apply_tuple` `format_value` `threadlocal_detail` `recordio_helpers` `exception_tracer` Reviewed By: ericniebler Differential Revision: D4468281 fbshipit-source-id: de10bec74c9a38f387d62bd55da947291c23970b
-
Angelo Failla authored
Summary: It is possible to extract a MAC address from a link-local IPv6 address. This diff provides the logic for it. Reviewed By: simpkins Differential Revision: D4461970 fbshipit-source-id: cb4a5d774c3b4a20716d1742c961e02952ddf80d
-
Christopher Dykes authored
Summary: This completely kills the environment portability header, which was among the earliest, and was created before the general convention of splitting based on the header they are in, in the standard library, existed. The functions that were defined in it are expected to be in stdlib, so move them there. Reviewed By: mzlee Differential Revision: D4462502 fbshipit-source-id: c4549b9d1ea623644223db4365b81507f443ad5e
-
Christopher Dykes authored
Summary: This makes a large number of implicit truncations and sign conversions into explicit casts, in preparation for eventually enabling `-Wconversion` on Folly. This set of changes should have zero semantic change. This focuses on the core of Folly and leaves the tests alone for the most part. A future diff will cleanup the warnings in the tests as well. Reviewed By: yfeldblum Differential Revision: D4454096 fbshipit-source-id: af1e1831675a804ec5679266c30c1fae62e8c35c
-
- 26 Jan, 2017 1 commit
-
-
Christopher Dykes authored
Summary: HHVM uses this heavily in it's ARM JIT, so provide an implementation. With GCC & Clang this function is a no-op on x86_64 where the requirement doesn't exist, so do the same in the portability header. This doesn't include the Windows portability header on x64 specifically because it is a very heavy header and this is currently very lightweight. Reviewed By: yfeldblum Differential Revision: D4451032 fbshipit-source-id: 0af57448577635f9cd690ea9b09ce46a244191e1
-
- 25 Jan, 2017 6 commits
-
-
Daniel Sommermann authored
Summary: This is needed if you want to test other scenarios where the server has other OpenSSL settings. Differential Revision: D4463587 fbshipit-source-id: ffd4019e921649dee703363b2ff028b4d8063210
-
Michael Lee authored
Summary: `setenv`/`unsetenv` is not always declared the same way on all of the places folly is compiled. Reviewed By: matbd Differential Revision: D4462056 fbshipit-source-id: 6dd68f6fc5a6a435f145cbaa43bee02b5fa7170c
-
Daniel Sommermann authored
Summary: The TestSSLServer is useful to have on its own for reuse. This diff separates it out to make reuse possible. Reviewed By: yfeldblum Differential Revision: D4457976 fbshipit-source-id: 1fe6b71e930859ef04487e29047dcf603a79834b
-
Christopher Dykes authored
Summary: HHVM compiles without `folly-config.h`, so this was preventing us from updating to the newest version of Folly. Reviewed By: yfeldblum Differential Revision: D4456890 fbshipit-source-id: ed118ff0cf7f254a5f99be68f171d1b34ebf5c5c
-
Petr Lapukhov authored
Summary: Similar to AsyncSocket, allow setting reserved sockopt after bind(). This will be recognized by intercepted accept4() call and forked sockets will properly have the TLS flag disabled. Reviewed By: djwatson Differential Revision: D4458831 fbshipit-source-id: fa753b9d849bd661563364d36229113f7abb0ee0
-
Christopher Dykes authored
Summary: It wasn't actually SFINAE the way it was setup previously, which meant it was just a hard error under MSVC. Whoops. Reviewed By: yfeldblum Differential Revision: D4453702 fbshipit-source-id: 5be600fb5ecdc8255795fefbd37c1fe26e7266dd
-
- 24 Jan, 2017 3 commits
-
-
Mathieu Baudet authored
Summary: Found with our include analysis tool. I had to tweak `portability/Environment.h` to avoid a false positive breaking win32. Reviewed By: yfeldblum, Orvid Differential Revision: D4452463 fbshipit-source-id: e2e862e204892037ddde8815218e4deab1bfbb06
-
Ryan Wilson authored
Summary: This patch adds a function to AsyncSSLSocket, so the user can check if the peer cert should be verified. This allows the user to implement custom logic for peer cert validation. Reviewed By: Orvid Differential Revision: D4456402 fbshipit-source-id: 2f8a5c932d0341d6c9290bcb52264dd4fa174263
-
Christopher Dykes authored
Summary: Because OpenSSL is evil to Windows, and you have to forcefully include winsock2 before winsock. Reviewed By: yfeldblum Differential Revision: D4453742 fbshipit-source-id: 3b1b5b1f999722559693164148245f52b1e94104
-
- 20 Jan, 2017 6 commits
-
-
Igor Zinkovsky authored
Summary: see title Reviewed By: meyering Differential Revision: D4441266 fbshipit-source-id: 4a8f589e2995a463e54b3979035a623824acf39e
-
Maged Michael authored
Summary: As suggested by the C++ committee in November 2016, made atomics generic to allow other atomic types (e.g., folly::DeterministicAtomic<T*>), Also removed obsolete comments. Reviewed By: davidtgoldblatt Differential Revision: D4443355 fbshipit-source-id: d9e21a959f2c7e3dd07c0ed4808236da80ef6dcd
-
Christopher Dykes authored
Summary: It's the exact same as `PF_LOCAL`, and is used interchangibly. Reviewed By: yfeldblum Differential Revision: D4439558 fbshipit-source-id: fd1ff813db5349369fc77888dfd854fc36a2a3be
-
Kyle Nekritz authored
Summary: SSL_CTX_load_verify_locations interally end up using X509_load_cert_crt_file, which has an unchecked call to X509_STORE_add_cert. This can fail and add an error to the error stack without causing SSL_CTX_load_verify_locations to return an error. Reviewed By: siyengar Differential Revision: D4442017 fbshipit-source-id: a4cf7f5ee2c18d90d5d61baf3acb99ffca6b8af0
-
Luca Niccolini authored
Summary: This reverts commit 12da254d6b281c2b9d522ba19999b2489c0083a2 Differential Revision: D4389970 fbshipit-source-id: 7651425adcf3b86c066d657308af1a0aa6bce5dd
-
Maxim Georgiev authored
Summary: EOR flag was hardcoded to "false" in folly::AsyncSocket. This diff enables changing EOR flag using AsyncSocket::setEorTracking() method. Reviewed By: yfeldblum Differential Revision: D4421966 fbshipit-source-id: 2e1b9b19ced6555845396ec33bfd3d5feb710640
-
- 19 Jan, 2017 2 commits
-
-
Phil Willoughby authored
Summary: Changes nothing fundamental, just makes it easier to work on in the future. Reviewed By: yfeldblum Differential Revision: D4435805 fbshipit-source-id: 725944a12922abde137bb7e21726c97beb558b5f
-
Andrii Grynenko authored
Summary: Limits number of fibers printed for each FiberManager. Reviewed By: yfeldblum Differential Revision: D4432488 fbshipit-source-id: 1791c2bfe6d5b0c2f54142dc068b473fd72f5d5d
-
- 18 Jan, 2017 2 commits
-
-
Maxim Georgiev authored
Summary: There is "operator|()" defined for folly::WriteFlags enum class, but no "operator=|()". Because of that adding a new flag to an existing set of flags looks awkward. Adding the missing operator. Reviewed By: yfeldblum Differential Revision: D4421892 fbshipit-source-id: a053a8cc5b1d07579c233d19029a9801b8188413
-
Eric Niebler authored
Summary: 'Nuf said. Depends on D4413112 Reviewed By: yfeldblum, spacedentist Differential Revision: D4425605 fbshipit-source-id: a7c98867cfa5c859a1b4d2eb78724710c4f1115f
-
- 16 Jan, 2017 3 commits
-
-
Christopher Dykes authored
Summary: It was killed in an earlier diff. Reviewed By: yfeldblum Differential Revision: D4418832 fbshipit-source-id: c9a5134fa100b24a3394607dea20e6e8a8d341e1
-
Christopher Dykes authored
Summary: Pthread is currently a dependency of Folly that is not really necessary on Windows, or even with standard C++ for the most part, so start work on killing it in Folly. This switches EventBase to using `std::thread::id`'s instead, which also means we aren't reliant on the implementation detail that thread id 0 is invalid. Well, we are, but it's now the standard library's fault not ours. Reviewed By: yfeldblum Differential Revision: D4418128 fbshipit-source-id: a9c95ac6c7305c960156a4ad684b6db89b5856d9
-
Christopher Dykes authored
Summary: It's possible via some hackery, so wrap it up nicely into the API. Reviewed By: yfeldblum Differential Revision: D4418728 fbshipit-source-id: f00aed95cdbdc3cc83a0ab96565117cd01141c2e
-