- 22 Jan, 2020 7 commits
-
-
Matt Ma authored
Summary: Range lists are contained in a separate object file section called .debug_ranges. A range list is indicated by a DW_AT_ranges attribute whose value is represented as an offset from the beginning of the .debug_ranges section to the beginning of the range list. Each entry in a range list is either: - a range list entry, - a base address selection entry, or - an end of list entry. Reviewed By: luciang Differential Revision: D19438098 fbshipit-source-id: 12f1d5c60067b0674c44f35ef2731781eb93f1d5
-
Matt Ma authored
Summary: Here is an example for class inline member function declared and defined in the same file: ``` Definition: 0x00004c0a: DW_TAG_subprogram [55] * DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x00177124] = "_ZNK5folly10symbolizer4test24ClassWithInlineFunctions9inlineBarERNS0_10FrameArrayILm100EEE") DW_AT_name [DW_FORM_strp] ( .debug_str[0x00089a73] = "inlineBar") DW_AT_decl_file [DW_FORM_data1] (0x1a) DW_AT_decl_line [DW_FORM_data1] (0xa5) DW_AT_declaration [DW_FORM_flag_present] (true) DW_AT_external [DW_FORM_flag_present] (true) DW_AT_accessibility [DW_FORM_data1] (0x01) … Declaration: -- no DW_AT_decl_file 0x000164c1: DW_TAG_subprogram [228] * DW_AT_specification [DW_FORM_ref4] (cu + 0x48ea => {0x00004c0a}) DW_AT_inline [DW_FORM_data1] (0x01) DW_AT_object_pointer [DW_FORM_ref4] (cu + 0x161ac => {0x000164cc}) … Inline function call 0x0001657b: DW_TAG_inlined_subroutine [140] * DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x161a1 => {0x000164c1}) DW_AT_low_pc [DW_FORM_addr] (0x000000000040fa6e) DW_AT_high_pc [DW_FORM_data4] (0x00000055) DW_AT_call_file [DW_FORM_data1] (0x1a) DW_AT_call_line [DW_FORM_data1] (0xe2) ``` Here is an example for class inline member function declared and defined in different files: ``` Definition: DW_AT_decl_file: 0x01 --> SymbolizerTestUtils.h 0x00004c3d: DW_TAG_subprogram [55] * DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x0017717f] = "_ZNK5folly10symbolizer4test22InlineFunctionsWrapper9inlineBarERNS0_10FrameArrayILm100EEE") DW_AT_name [DW_FORM_strp] ( .debug_str[0x00089a73] = "inlineBar") DW_AT_decl_file [DW_FORM_data1] (0x01) DW_AT_decl_line [DW_FORM_data1] (0x30) DW_AT_declaration [DW_FORM_flag_present] (true) DW_AT_external [DW_FORM_flag_present] (true) DW_AT_accessibility [DW_FORM_data1] (0x01) … Declaration: DW_AT_decl_file: 0xbf --> SymbolizerTestUtils-inl.h 0x00017ee8: DW_TAG_subprogram [231] * DW_AT_decl_file [DW_FORM_data1] (0xbf) DW_AT_decl_line [DW_FORM_data1] (0x21) DW_AT_specification [DW_FORM_ref4] (cu + 0x491d => {0x00004c3d}) DW_AT_inline [DW_FORM_data1] (0x01) DW_AT_object_pointer [DW_FORM_ref4] (cu + 0x17bd5 => {0x00017ef5}) … Inline function call 0x00017fa5: DW_TAG_inlined_subroutine [158] * DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x17bc8 => {0x00017ee8}) DW_AT_low_pc [DW_FORM_addr] (0x00000000004104ee) DW_AT_high_pc [DW_FORM_data4] (0x00000055) DW_AT_call_file [DW_FORM_data1] (0x1a) DW_AT_call_line [DW_FORM_data2] (0x0101) ``` Reviewed By: luciang Differential Revision: D19444082 fbshipit-source-id: 5a552404609073af04b0cc0b86b5e19d5149a1e1
-
Matt Ma authored
Summary: Linkage name (DW_AT_linkage_name) contains more information than the identifier name (DW_AT_name). Reviewed By: luciang Differential Revision: D19437477 fbshipit-source-id: 1755a71678cbe9e90ba7bc085e4c46b7784c273e
-
Matt Ma authored
Summary: Actually class inline functions exist in both .debug_info and .debug_types sections. In this diff, only the information in .debug_info is used. Step 1. Find the DW_TAG_inlined_subroutine debug info entry (DIE) based on the given address. Step 2. Find the DW_TAG_subprogram DIE based on the DW_AT_abstract_origin attr in inlined_subroutine, but this DIE is just a declaration. Step 3. Find the actual definition DW_TAG_subprogram DIE based on the DW_AT_specification attr. ``` .debug_info 0x00003657: DW_TAG_subprogram [56] * ---- step 3 DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x0002932d] = "_ZN5folly10symbolizer4test24ClassWithInlineFunctions9inlineBarERNS0_10FrameArrayILm100EEE") DW_AT_name [DW_FORM_strp] ( .debug_str[0x00014064] = "inlineBar") DW_AT_decl_file [DW_FORM_data1] (0x18) DW_AT_decl_line [DW_FORM_data1] (0xa1) DW_AT_declaration [DW_FORM_flag_present] (true) DW_AT_external [DW_FORM_flag_present] (true) DW_AT_accessibility [DW_FORM_data1] (0x01) … 0x0000cd74: DW_TAG_subprogram [203] * . ---- step 2 DW_AT_specification [DW_FORM_ref4] (cu + 0x358f => {0x00003657}) DW_AT_inline [DW_FORM_data1] (0x01) DW_AT_object_pointer [DW_FORM_ref4] (cu + 0xccb7 => {0x0000cd7f}) … 0x0000cda0: DW_TAG_subprogram [181] * DW_AT_low_pc [DW_FORM_addr] (0x00000000002a4980) DW_AT_high_pc [DW_FORM_data4] (0x00001e22) DW_AT_frame_base [DW_FORM_exprloc] (<0x1> 56 ) DW_AT_object_pointer [DW_FORM_ref4] (cu + 0xccf0 => {0x0000cdb8}) DW_AT_specification [DW_FORM_ref4] (cu + 0x312f => {0x000031f7}) … 0x0000ce02: DW_TAG_inlined_subroutine [157] * ---- step 1 DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0xccac => {0x0000cd74}) DW_AT_low_pc [DW_FORM_addr] (0x00000000002a4f66) DW_AT_high_pc [DW_FORM_data4] (0x000000c0) DW_AT_call_file [DW_FORM_data1] (0x18) DW_AT_call_line [DW_FORM_data1] (0xe6) .debug_types 0x00020fdf: DW_TAG_class_type [33] * DW_AT_calling_convention [DW_FORM_data1] (0x05) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00067094] = "ClassWithInlineFunctions") DW_AT_byte_size [DW_FORM_data1] (0x08) DW_AT_decl_file [DW_FORM_data1] (0x18) DW_AT_decl_line [DW_FORM_data1] (0x9f) … 0x00020ff5: DW_TAG_subprogram [56] * DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x0002932d] = "_ZN5folly10symbolizer4test24ClassWithInlineFunctions9inlineBarERNS0_10FrameArrayILm100EEE") DW_AT_name [DW_FORM_strp] ( .debug_str[0x00014064] = "inlineBar") DW_AT_decl_file [DW_FORM_data1] (0x18) DW_AT_decl_line [DW_FORM_data1] (0xa1) DW_AT_declaration [DW_FORM_flag_present] (true) DW_AT_external [DW_FORM_flag_present] (true) DW_AT_accessibility [DW_FORM_data1] (0x01) ``` Reviewed By: luciang Differential Revision: D19384064 fbshipit-source-id: a2a6397b94aab9de58d013cf4ad19e658e180d31
-
Victor Zverovich authored
Summary: In cases where `addBenchmark` is called directly the name often resides in `std::string` which requires calling `c_str()`. Make it possible to pass `std::string` by making the function take `StringPiece` instead of `const char*`. Reviewed By: rhodo Differential Revision: D19507553 fbshipit-source-id: 49dd2bb77daefffeda3fc2153215de77b530f214
-
Mohamed Bassem authored
Summary: When building folly with clang, backtrace was marked as not found. This diff uses `find_package(Backtrace)` instead which allowed us to use the symbolizer libs. Reviewed By: simpkins Differential Revision: D19497120 fbshipit-source-id: a8f8b4ffe9a2d53a53b6c7be32ac2a832a840877
-
Joe Kirchoff authored
Summary: Use functional style cast on literal value instead of static_cast Reviewed By: yfeldblum, jdonald Differential Revision: D19459138 fbshipit-source-id: 103f644322394779fc5cd8512d7a5244d2231091
-
- 21 Jan, 2020 2 commits
-
-
Paul McKenney authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1306 The current documentation for Folly::synchronize_rcu and Folly::rcu_barrier is lacking, this commit adds comment headers. Reviewed By: magedm Differential Revision: D18618910 fbshipit-source-id: 39e18d52b2380234ec6f33a1ec220acc97abdd50
-
Lukas Piatkowski authored
Summary: With this change the getdeps' CargoBuilder will support depencies between cargo builds. The way how it works is documented in the code and required few assumptions about how a cargo project has to be defined in order to support this. This change also adds the "mononoke" manifest and few Cargo.toml files to the mononoke project to prove that this new feature works. Reviewed By: farnz Differential Revision: D19468912 fbshipit-source-id: f299733cbbc2ec7bca399c898ec8d710334d0fa9
-
- 20 Jan, 2020 1 commit
-
-
generatedunixname89002005287564 authored
Reviewed By: yfeldblum Differential Revision: D19391772 fbshipit-source-id: 4dffdd2d4c42591c9a8b4841fcb63d2284649350
-
- 18 Jan, 2020 3 commits
-
-
Shrikrishna Khare authored
Summary: FBOSS needs to use header files from more directories in OpenNSA, so make those available in include directory. Differential Revision: D19461874 fbshipit-source-id: 1fe3fbbc39477baecf9cd4f7c7a964be40cbbb12
-
Dan Melnic authored
Summary: Fix linter issue (Note: this ignores all push blocking failures!) Reviewed By: danobi Differential Revision: D19435633 fbshipit-source-id: 858755eda1873b20cd7dae6e24b39ce21d15608a
-
Lee Howes authored
Summary: Corrects incorrect logging function being called. Reviewed By: lewissbaker Differential Revision: D19453995 fbshipit-source-id: 5268a8ed5ef8379da84e83ec05db9e88317f3b9a
-
- 17 Jan, 2020 3 commits
-
-
Dan Melnic authored
Summary: Workaround for warning caused by clang pretending to be cl Differential Revision: D19426072 fbshipit-source-id: ba59913fe9b6c27f32db06f341429952fc4312b5
-
Shrikrishna Khare authored
Summary: This is an interim solution that unblocks failing FBOSS OSS builds. Broadcom's OpenNSA is available on github and contains large precompiled libraries. For large files (> 100Mb), github uses git-lfs. git clones to OpenNSA started failing yesterday with: Error downloading object: lib/x86-64/libopennsa.a (7f21d94): Smudge error: Error downloading lib/x86-64/libopennsa.a (7f21d941ac32ccae38adb05b3386be739bdccd502a878364d386e7a5cb172f35): batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access. Github documents (refer: https://help.github.com/en/github/managing-large-files/about-storage-and-bandwidth-usage) “When you download a file tracked with Git LFS, the total file size is counted against the repository owner’s bandwidth limit”. It appears we are hitting that limit. Thus, github is not a good choice here. Even if we create a 'github release tarball', the tarball continues to carry lfs files and thus downloading those counts towards the quota (which is limited). Broadcom paid some amount to bump up the quota, but it is matter of time before we hit it esp given that these builds run on-diff. A better solution is to download a tarball (that contains real files, not lfs), and then allow Facebook lfs to cache it. While github does not support that, it seems bitbucket does. Thus, we forked OpenNSA from github into a bitbucket repo and this patch modifies the manifest to download a tarball from bitbucket that will be cached. Broadcom is working on a cleaner solution but this will keep our FBOSS OSS build clean in the interim. Reviewed By: wez Differential Revision: D19437386 fbshipit-source-id: b1213a186a0af57b9fd71b30e8899e80affd4cc0
-
Maged Michael authored
Summary: Add a call in folly init to folly::start_hazptr_thread_pool_executor() to make the default hazptr domain use a CPUThreadPoolExecutor by default. Reviewed By: davidtgoldblatt Differential Revision: D19107125 fbshipit-source-id: 1cebe0864de14b54349f723061c4c2b5905b105b
-
- 16 Jan, 2020 3 commits
-
-
Lewis Baker authored
Summary: This allows the caller to, for example, pass their own ManualExecutor or EventBase and have the task scheduled onto that executor and have the current thread drive that executor until it completes. Reviewed By: yfeldblum Differential Revision: D19205803 fbshipit-source-id: 6042f68decf8d7d9bb1d37977e5804b0504daa41
-
Subodh Iyengar authored
Summary: add the socket to the callback parameter Reviewed By: yangchi Differential Revision: D19192549 fbshipit-source-id: 068bdb560273ab3203a1b7eaefa5b01c4e4e9968
-
Dan Melnic authored
Summary: Add support for registered fds Reviewed By: kevin-vigor Differential Revision: D19313387 fbshipit-source-id: 19527958b3986992cdafbad2c4c4902c887a9e9f
-
- 15 Jan, 2020 8 commits
-
-
Shrikrishna Khare authored
Summary: Broadcom has formally replaced OpenNSL with newer OpenNSA: https://github.com/Broadcom-Network-Switching-Software/OpenNSA/blob/master/README.md With D16401189, FBOSS no longer depends on OpenNSL, but uses the new OpenNSA instead. Remove this manifest. Reviewed By: wez Differential Revision: D19413708 fbshipit-source-id: f3662f1101d59a5e0e59cb7238797d652564ff90
-
Yedidya Feldblum authored
Summary: [Folly] Use `getrandom` instead of `/dev/urandom` when available. The C library function `getrandom` is available on linux >= 3.17 and glibc >= 2.25. Reviewed By: ot, simpkins, luciang Differential Revision: D19211519 fbshipit-source-id: 07e7e856fc81d1f04efca4a6cfa0b76ada08f443
-
Eric Niebler authored
Summary: When reading a `std::exception_ptr` out of a moved-from `folly::exception_wrapper`, we end up reading a `std::exception_ptr` field of a deleted `ExceptionPtr` object. This was causing MSAN much consternation. The fix is to test for emptiness in `to_exception_ptr` and return a default-constructed `std::exception_ptr`. This commit also adds extra test cases, since `to_exception_ptr` does something slightly different depending on whether the `exception_wrapper` object is `const` or not. Reviewed By: yfeldblum Differential Revision: D19403528 fbshipit-source-id: fde74a5c4b2ddb2025703432c1ac5a19d26b9426
-
Kirk Shoop authored
Summary: I have been encountering ``` AddressSanitizer:DEADLYSIGNAL ================================================================= ==937752==ERROR: AddressSanitizer: SEGV on unknown address 0x24a12000e4f18 (pc 0x7f3902a6e696 bp 0x7f37bc5e4380 sp 0x7f37bc5e42a0 T107) ==937752==The signal is caused by a READ memory access. SCARINESS: 20 (wild-addr-read) #0 0x7f3902a6e695 in folly::ThreadLocalPtr<folly::SingletonThreadLocal<folly::hazptr_tc<std::atomic>, void, folly::detail::DefaultMake<folly::hazptr_tc<std::atomic> >, void>::Wrapper, void, void>::get() const folly/ThreadLocal.h:160 #1 0x7f3902a6d600 in get folly/ThreadLocal.h:69 #2 0x7f3902a6d600 in folly::ThreadLocal<folly::SingletonThreadLocal<folly::hazptr_tc<std::atomic>, void, folly::detail::DefaultMake<folly::hazptr_tc<std::atomic> >, void>::Wrapper, void, void>::operator*() const folly/ThreadLocal.h:78 #3 0x7f3902a6ca1b in folly::SingletonThreadLocal<folly::hazptr_tc<std::atomic>, void, folly::detail::DefaultMake<folly::hazptr_tc<std::atomic> >, void>::getWrapper() folly/SingletonThreadLocal.h:149 #4 0x7f3902a6cbe5 in folly::SingletonThreadLocal<folly::hazptr_tc<std::atomic>, void, folly::detail::DefaultMake<folly::hazptr_tc<std::atomic> >, void>::LocalLifetime::~LocalLifetime() folly/SingletonThreadLocal.h:121 #5 0x7f38f04d9fd5 in (anonymous namespace)::run(void*) /data/users/kirkshoop/gcc/trunk/libstdc++-v3/libsupc++/atexit_thread.cc:75:16 #6 0x7f38ef9ee551 in __nptl_deallocate_tsd.part.8 /home/engshare/third-party2/glibc/2.26/src/glibc-2.26/nptl/pthread_create.c:301:8 #7 0x7f38ef9ef7c8 in __nptl_deallocate_tsd /home/engshare/third-party2/glibc/2.26/src/glibc-2.26/sysdeps/nptl/futex-internal.h:200:3 #8 0x7f38ef9ef7c8 in start_thread /home/engshare/third-party2/glibc/2.26/src/glibc-2.26/nptl/pthread_create.c:475:3 ``` I tried using a unique Tag for the SingletonThreadLocal for debugging purposes and this seemed to fix the issue. Reviewed By: magedm Differential Revision: D19356179 fbshipit-source-id: a18c6b02f0a40e0509753075614eeff71d859bf7
-
Shrikrishna Khare authored
Summary: With the release of OpenNSA (https://github.com/Broadcom-Network-Switching-Software/OpenNSA), we can stop using opennsal altogether! This diff was created using following steps: cd fboss/agent find . ! -path "*\/oss*" -type f \( ! -iname "*TARGETS*" \) -exec sed -i -e 's/opennsl_spl_//g' {} \; find . ! -path "*\/oss*" -type f \( ! -iname "*TARGETS*" \) -exec sed -i -e 's/opennsl/bcm/g' {} \; find . ! -path "*\/oss*" -type f \( ! -iname "*TARGETS*" \) -exec sed -i -e 's/OPENNSL/BCM/g' {} \; find . ! -path "*\/oss*" -type f \( ! -iname "*TARGETS*" \) -exec sed -i -e 's/OpenNSL/Bcm/g' {} \; # for symbols like snmpBcmTransmittedPkts2048to4095Octets Furthermore: - In all TARGETS under fboss/agent replace wrapped_opennsl_symbols with wrapped_bcm_symbols. - hg mv agent/facebook/test/OpenNSLInterface.h agent/facebook/test/BcmInterface.h - BcmEgress.cpp remove operator== overload for opennsl API altogether, and remove operator== BCM API version from inside unnamed namespace, and put it in fboss namespace. - BcmCinter.h and BcmCinter.cpp now have some duplicate definitions as opennsl_ got renamed to bcm_. Delete one of the definitions "as appropriate". - Similarly, remove duplicate definitions in FakeSdk.h and FakeSdk.cpp - Similarly, remove duplicate definitions in SdkTracer.cpp (remove definitions calling CALL_WRAPPERS_RV_NO_CINTER). And lastly, remove CALL_WRAPPERS_RV_NO_CINTER itself. - arc lint - Remove OpennslCompatTests.cpp - Fix ./agent/hw/bcm/tests/facebook/BcmEgressTest.cpp to have #include "fboss/agent/facebook/test/MockOpenNSL.h" instead of MockBcm.h TODO: - This patch retains the directory structure (facebook/ subdirectory), which will be fixed in subsequent patches. - Remove opennsl references from TARGETS file, additional cleanup etc. - Remove all oss directories... Differential Revision: D16401189 fbshipit-source-id: 607b6c0f97ffcacf3707f6b7a4c9454cc0b24476
-
Shrikrishna Khare authored
Summary: Broadcom provides this library and they decided to rename it from OpenBCM to OpenNSA. Thus, rename corresponding fbcode_builder code. Reviewed By: wez Differential Revision: D19396687 fbshipit-source-id: 8233dbf4de9342b5a0e54ae275d6c73d43abe6d0
-
Yedidya Feldblum authored
Summary: [Folly] Cut unused `AsyncSocketException::SASL_HANDSHAKE_TIMEOUT`. Reviewed By: vitaut Differential Revision: D19343864 fbshipit-source-id: ed4374bc2b376ff71e592323ed8c37290700e870
-
Konstantin Tsoy authored
Summary: Add recvmmsg Differential Revision: D18927890 fbshipit-source-id: de500dd1c266f21fbfc39c2972df787da50c7a80
-
- 14 Jan, 2020 3 commits
-
-
Igor Sugak authored
Summary: UndefinedBehaviorSanitizer: implicit-integer-truncation buck-out/dev/gen/folly/synchronization/atomic_util#header-mode-symlink-tree-with-header-map,headers/folly/synchronization/AtomicUtil-inl.h:115:28 ``` Here both `mask` and the first argument in `std::atomic<..>::fetch_and` have type `unsigned char`. Before bitwise not operation `mask` variable undergoes [integral promotion](https://en.cppreference.com/w/cpp/language/implicit_conversion#Integral_promotion) resulting in truncation error. Since here this is intentional add a `static_cast` to be explicit about it. Reviewed By: yfeldblum Differential Revision: D19320340 fbshipit-source-id: 41c987c19b77fa21ee9aa83cf06dfc7cddba91c8
-
Rosen Penev authored
Summary: Found with readability-simplify-boolean-expr Signed-off-by: Rosen Penev <rosenp@gmail.com> Pull Request resolved: https://github.com/facebook/folly/pull/1301 Reviewed By: yfeldblum Differential Revision: D19302630 Pulled By: Orvid fbshipit-source-id: 9833e4ab3fe93592fa8f868f6ed2d56a263949fe
-
Adam Simpkins authored
Summary: Enable `INSTALL_PYTHON_LIB=ON` for internal builds of Eden on Windows. Reviewed By: pkaush Differential Revision: D19060630 fbshipit-source-id: 40d4f8784958fbeaad4f0d332c55fa0cb810cb5e
-
- 13 Jan, 2020 7 commits
-
-
Phil Willoughby authored
Summary: Add `FOLLY_NO_UNIQUE_ADDRESS ` to expose C++20's `[[no_unique_address]]` where available. (Note: this ignores all push blocking failures!) Reviewed By: pixelb Differential Revision: D19375089 fbshipit-source-id: 9a83ae791002e02df5b93b61f20209e5f467a959
-
Igor Sugak authored
Reviewed By: yfeldblum Differential Revision: D19359860 fbshipit-source-id: b084d8cd603238e76d61de1eed3f233cf5b7fb27
-
Igor Sugak authored
Reviewed By: yfeldblum Differential Revision: D19359673 fbshipit-source-id: 610ae77e205038267e0e331a04486eef0329c165
-
Felix Handte authored
Summary: For long-lived IOBufs, it can be useful to know whether their memory footprint can be usefully shrunk. This diff exposes a method that lets users see the smallest capacity an IOBuf could have while wrapping a particularly sized object. Without this, they have to do hacky math. Reviewed By: yfeldblum Differential Revision: D18440359 fbshipit-source-id: 1324700b58f0b2762cb3347b907ca5e04ebecb99
-
Gabriel Russo authored
Summary: This constructor would never be called since the class is abstract (the method `add` from `Executor` is not implemented). This causes a warning which fails builds because of `-Werror`. Reviewed By: yfeldblum Differential Revision: D19345492 fbshipit-source-id: 20f185e0903a03acbde2e55e5a575e20deb5ad2a
-
Gabriel Russo authored
Summary: This variable shadows the field `options_`, so rename it to get rid of the warning `constructor parameter 'options_' shadows the field 'options_' of 'FiberManager'` (which is turned into an error because of `-Werror`). This happens on clang 8. Reviewed By: yfeldblum Differential Revision: D19331755 fbshipit-source-id: 3615cf9b6c7516775f1dc198a08bc784a52c0fb4
-
Dan Melnic authored
Summary: Add non persistent events overflow tests Reviewed By: danobi, kevin-vigor Differential Revision: D19349804 fbshipit-source-id: 360d1f41d074b3d1af5f163213dadfc35f28c353
-
- 11 Jan, 2020 2 commits
-
-
Igor Sugak authored
Reviewed By: yfeldblum Differential Revision: D19357723 fbshipit-source-id: d099419271f74b013a276079723250ce842e2b24
-
Yedidya Feldblum authored
Summary: [Folly] Fix evaluation-order assumption in futures varidic collect - argument evaluation order is unspecified so it must not be relied on when side-effects must occur in a specific order. Reviewed By: lewissbaker Differential Revision: D19347873 fbshipit-source-id: db4326d995a241619f96ff2bacdf5a5fa2332091
-
- 10 Jan, 2020 1 commit
-
-
Jason Fried authored
Summary: There have been weird edge cases we haven't tracked down yet that saw python segfaulting at shutdown, caused by drive() run from the destructor of AsyncioExecutor after Python had run Py_Finalize shutting down the runtime. This fix uses new checks from Python >=3.7 to check if Python is finalizing Reviewed By: yfeldblum, nanshu Differential Revision: D19321677 fbshipit-source-id: 79a6f95df383a86d80e064eb55a8a81e29d50ace
-