- 15 Oct, 2014 6 commits
-
-
Andrii Grynenko authored
Summary: This will ensure SingletonVault is always available. It matters for singletons, not managed by folly::Singleton. Singletons in it will actually be destroyed via static SingletonVaultDestructor. Test Plan: unit test Reviewed By: chip@fb.com Subscribers: njormrod FB internal diff: D1591270
-
Hans Fugal authored
Summary: For great speed Test Plan: $ fbmake opt && _bin/folly/wangle/wangle-bench ============================================================================ folly/wangle/test/Benchmark.cpp relative time/iter iters/s ============================================================================ constantFuture 235.92ns 4.24M promiseAndFuture 100.37% 235.04ns 4.25M withThen 41.97% 562.17ns 1.78M ---------------------------------------------------------------------------- oneThen 539.03ns 1.86M twoThens 64.01% 842.14ns 1.19M fourThens 39.27% 1.37us 728.62K hundredThens 1.82% 29.63us 33.75K ============================================================================ Reviewed By: davejwatson@fb.com Subscribers: trunkagent, net-systems@, fugalh, exa, njormrod FB internal diff: D1587871
-
James Sedgwick authored
Summary: I'm not thrilled with this implementation, but it mostly works. The big bummer is enforcing that Observables are held in shared_ptrs, or rather that enforcing that condition is impossible. The protected constructor / friended dumb make_shared() pattern is clunky, and it'd be really easy for a subclasser to shoot themselves in the foot or even in the face. It does seem like maybe Observable should be made an interface again, and all these details should live in a subclass (FanoutObservable?) where the restriction are super obvious. For instance, the langtech AudioStream object doesn't need all this crap because it overrides subscribe() without using the observer list, but it subclasses anyways. I'm noodling another approach that (if it works) will not require the shared_ptr dancing, but will probably have some additional overhead... the observable would have to keep track of the subscriptions itself. I like the RAII subscriptions, though perhaps subscriptions should be optional as long as it's clear that your subscription will last forever it you opt out of them. Thoughts? Test Plan: added unit Reviewed By: hans@fb.com Subscribers: rushix, hannesr, trunkagent, fugalh, mwa, jgehring, fuegen, njormrod, bmatheny FB internal diff: D1580443
-
Adam Simpkins authored
Summary: This adds versions of stringPrintf() and stringAppendf() that accept va_list arguments. This also fixes the existing stringPrintf() functions to properly call va_end() even when an exception is thrown in stringPrintfImpl(). Test Plan: Included new unit tests for stringVPrintf() and stringVAppendf(). Reviewed By: davejwatson@fb.com Subscribers: trunkagent, doug, net-systems@, exa, njormrod FB internal diff: D1583675
-
James Sedgwick authored
Summary: needed for thrift server. if you have some sort of stateful/functional factory and you want to hold on to it, you should be allowed to Test Plan: compiles with forthcoming thrift diff Reviewed By: davejwatson@fb.com Subscribers: trunkagent, fugalh, njormrod FB internal diff: D1584587
-
James Sedgwick authored
Summary: I'm not 100% sure this is the best way to go about this but I don't hate it either. I'm going to start seeing how it might fit into tserver - my guess is that some sort Cpp2WorkerFactory which also manages those objects would get plugged in as the thread factory Haven't fleshed out how this would relate to TEventBaseManager Test Plan: added unit, starting to play with this in Thrift2 server Reviewed By: davejwatson@fb.com Subscribers: alandau, bmatheny, trunkagent, fugalh, njormrod FB internal diff: D1574660
-
- 30 Sep, 2014 8 commits
-
-
Dave Watson authored
-
Hans Fugal authored
Summary: Could the problem be that via continues the existing chain of futures, whereas we actually want to start a new chain? Is there any particular reason this wasn't implemented like this originally? Test Plan: Ran all the unit tests. I hope to try to reproduce the thread issue and see if this improves things. Reviewed By: davejwatson@fb.com Subscribers: trunkagent, net-systems@, exa, njormrod, fugalh FB internal diff: D1500225 Tasks: 4920689
-
Andrii Grynenko authored
Summary: Test Plan: fbmake runtests, OBC no longer segfaults Reviewed By: mshneer@fb.com Subscribers: fbcode-common-diffs@, trunkagent, mcduff, marccelani, hitesh, mshneer, njormrod, lins FB internal diff: D1573880
-
Alan Frindell authored
Summary: I'm going to have hhvm depend on Subprocess, found this build error in open source. I figured the intent was to set r to the return code. I could also delete the whole thing since it's unused. Test Plan: Unit tests Reviewed By: tudorb@fb.com Subscribers: trunkagent, mwilliams, doug, njormrod FB internal diff: D1583626
-
Haijun Zhu authored
Summary: Some minor bug and a failed test caused by D1578466 Test Plan: fbconfig thrift/lib/cpp/test:HHWheelTimerTest && fbmake runtests Reviewed By: davejwatson@fb.com Subscribers: trunkagent, alandau, bmatheny, njormrod FB internal diff: D1581949
-
Andrii Grynenko authored
Summary: We only need exclusive lock when we add items to singletons_. Each SingletonEntry has its own mutex, so it's safe to rely on it for any modifications within individual entries. Test Plan: Applied D1573880 and ran fbconfig -r servicerouter/client/cpp2 && fbmake runtests Reviewed By: chip@fb.com Subscribers: trunkagent, njormrod, hitesh, mshneer FB internal diff: D1579877
-
Nicholas Ormrod authored
Summary: Because we put FBString and Malloc into libgcc, we have to be careful which dependencies they each have. We cannot include ScopeGuard. Reorganize the code a bit to avoid the ScopeGuard. Test Plan: fbconfig -r folly && fbmake runtests Reviewed By: je@fb.com Subscribers: trunkagent, sdwilsh, njormrod FB internal diff: D1580957
-
Nicholas Ormrod authored
Summary: By the birthday paradox, this will fail about once every 8,100 runs. Dropping to 100 with cut that to 1 in 860,000. Test Plan: fbconfig -r folly && fbmake runtests Reviewed By: sdoroshenko@fb.com Subscribers: sdwilsh, njormrod FB internal diff: D1581238
-
- 26 Sep, 2014 26 commits
-
-
Anton Likhtarov authored
-
James Sedgwick authored
Summary: This should be the last test abusing sleeps. Test Plan: ran Reviewed By: hannesr@fb.com Subscribers: fugalh, njormrod FB internal diff: D1580830 Tasks: 5225808
-
Jim Meyering authored
Summary: Avoid a clang-caught heap-buffer-overrun and document that the ssse3 decoder requires at least 17 bytes of readable memory starting at the source pointer. * folly/GroupVarint.h (decode_simple): Comment out dead code. (decode)[__SSSE3__]: Add a comment describing this limitation. * folly/test/GroupVarintTest.cpp (testGroupVarint32): Include <algorithm> for use of std::max. Ensure that the buffer we use has length at least 17. Test Plan: Now, all tests succeed with clang/asan Reviewed By: simpkins@fb.com Subscribers: trunkagent, mathieubaudet, njormrod FB internal diff: D1579109 Tasks: 5241437
-
James Sedgwick authored
Summary: not necessarily for commit but i was playing around a bit with this today to see what it might look like, so i figured i'd put it up i assume this shenanigan isn't remotely safe (threadwise) without some extra magic... @fugalh we chatted about this last time i was in mpk a bit. maybe addFuture could take an executor to make sure the promise is fulfilled on the correct thread, or something. you'd have to reimplement timeouts via this executor or via futures if you wanted to get them via the futures channel, which makes sense anyway as this could be used with any Executor and not just ThreadPoolExecutor which owns that implementation also specialized makeFutureTry to take functions that return futures but treat them like they return the contained types, so fulfil() can be used liked then() this specialization could just as easily be done on fulfil() itself if we wanted. Test Plan: unit Reviewed By: davejwatson@fb.com Subscribers: hannesr, trunkagent, craffert, njormrod, fugalh, bmatheny FB internal diff: D1566369
-
James Sedgwick authored
Summary: fixed the one brought up in the task, and tweaked another that could theoretically cause problems Test Plan: ran, though I have not been able to repro the Reviewed By: njormrod@fb.com Subscribers: fugalh, njormrod FB internal diff: D1575632 Tasks: 5225808
-
Simon Jenkins authored
Summary: when event base is busy we're timing out tasks too early. BIG SCARY NOTE: I don't have the thrift knowledge to know if there's sideeffects of this, please let me know if this change is harmful. Test Plan: tested internally Reviewed By: davejwatson@fb.com Subscribers: njormrod FB internal diff: D1578466 Tasks: 4752162
-
Dave Watson authored
Summary: check external_ vs. AF_UNIX. Also fix reset() to reset storage_.addr Test Plan: fbconfig folly/test:network_address_test; fbmake runtests Reviewed By: soren@fb.com Subscribers: tudorb, trunkagent, doug, njormrod FB internal diff: D1575098
-
Andrew Gallagher authored
Summary: This gets almost all of folly building with buck. There are a few cases we don't support yet (custom test wrappers for spooky test binaries, dlopen-enabled exception tracer binary, etc), but the vast majority is covered. Test Plan: built all build targets and ran all tests buck Reviewed By: sdwilsh@fb.com Subscribers: tjackson, sdwilsh, fugalh, njormrod FB internal diff: D1577256 Tasks: 5055879
-
Marc Horowitz authored
Summary: Add a class_name method, which doesn't need to throw/catch regardless how the exception is captured. Test Plan: exception_wrapper_test Reviewed By: mshneer@fb.com Subscribers: njormrod FB internal diff: D1543596 Tasks: 5025089 Blame Revision:
-
Nicholas Ormrod authored
Summary: Under moderate load, this part of the test would fail. When there is resource contention, it is quite possible that the timeout will be exceeded. A further reduction of the time spread will render this test next to useless. Moderate load can be as little as running all of folly's tests at once, which is something that our testing infrastructure does quite frequently. fbconfig -r folly fbmake runtests Test Plan: fbconfig -r folly && fbmake runtests Reviewed By: hannesr@fb.com Subscribers: sdwilsh, fugalh, njormrod FB internal diff: D1576570 Tasks: 5225808
-
Soren Lassen authored
Summary: Reverts the revert of the small_vector and test parts of D1569246. I'm saving the SocketAddress fix for later, because it caused problems and needs more research. Test Plan: unit tests with clang:dev/asan Reviewed By: njormrod@fb.com Subscribers: mathieubaudet, philipp, meyering, njormrod FB internal diff: D1575574 Blame Revision: D1575190
-
Dave Watson authored
Summary: Use the new managed connection code in folly. Cleans things up a fair bit The only catch was the current ConnectionManager code uses raw pointers, thrift expects shared_ptr so the request object can keep the channel around until the requests are finished Test Plan: fbconfig -r thrift/lib/cpp2; fbmake runtests Reviewed By: afrind@fb.com Subscribers: trunkagent, njormrod, doug, fugalh, alandau, bmatheny, dcsommer, afrind FB internal diff: D1519923 Tasks: 5002343
-
Danny Guo authored
Summary: This reverts commit 2c726dcf86bb176fb3695739a3d8bca2f95c41e6. Test Plan: build it Reviewed By: soren@fb.com Subscribers: woo, mathieubaudet, njormrod FB internal diff: D1575190
-
James Sedgwick authored
Summary: make these more serialized / event based so they don't get flakey under high load Test Plan: ran under load - caveat: i was not able to repro the flakiness @njormrod reported but by inspection these should be fine Reviewed By: njormrod@fb.com Subscribers: fugalh, njormrod FB internal diff: D1574640 Tasks: 5225808
-
Soren Lassen authored
Summary: I tried running folly/test with clang:dev and asan and found these leaks. Test Plan: unit tests with clang:dev/asan Reviewed By: davejwatson@fb.com Subscribers: davejwatson, trunkagent, mathieubaudet, njormrod, meyering, philipp FB internal diff: D1569246
-
James Sedgwick authored
Summary: Couple of notes: 1. is it a bummer not to have per-task callbacks of some kind? the interfaces set up here only tell you that some task expired, not which one expired. TM calls back with the Runnable object. is that useful? 2. std::chrono::* business is frustratingly verbose, but the safety/explicitness is nice. Not sure how I feel overall. 3. perhaps expirations should be given in microseconds even if we don't think we can accurately accomplish that Test Plan: added unit Reviewed By: hans@fb.com Subscribers: fugalh, njormrod, bmatheny FB internal diff: D1563520
-
Pavlo Kushnir authored
Summary: Mcrouter open source build is failing because Codel is missing in fbthrift. Test Plan: visual Reviewed By: davejwatson@fb.com Subscribers: fugalh, njormrod FB internal diff: D1572122 Blame Revision: D1566128
-
Dave Watson authored
Summary: Looks like the test explicitly looks for InvalidAddressFamilyException. I don't think any users are depending on this particular error type either way, I just switched it to InvalidAddressFamilyException Test Plan: unit tests Reviewed By: ldbrandy@fb.com Subscribers: doug, njormrod FB internal diff: D1570363 Tasks: 5153819
-
James Sedgwick authored
Summary: this way we can subscribe to an observable and blast data through it simultaneously from different threads Test Plan: not much... the one client of rx compiles Reviewed By: davejwatson@fb.com Subscribers: fugalh, njormrod, bmatheny FB internal diff: D1560647
-
James Sedgwick authored
Summary: pool-wide stats via a call on the pool, and per-task stats (e.g. to be funneled into a histogram) via an rx subscription rx needs a little work before this diff is safe - e.g. synchronization around the subscriber list, and perhaps exposing whether there are any subscribers so we can skip stat tracking if no one is listening won't commit this without moving rx into folly/experimental of course the idea is that timeout/expiration notifications can also go through the same subscription channel haven't run the benchmarks yet and have to leave for the evening but tmrw i'll commit changes to the benchmark and get this stuff into windtunnel so i don't have to do so much manual output inspection on future diffs Test Plan: added unit Reviewed By: davejwatson@fb.com Subscribers: fugalh, njormrod, bmatheny FB internal diff: D1558424 Tasks: 5002392, 5002425
-
James Sedgwick authored
Summary: As above. I want to use this for the thread pools and it probably belongs in folly long-term anywya (if we stick with it) Test Plan: compiled the one user Reviewed By: hans@fb.com Subscribers: fugalh, mwa, jgehring, fuegen, njormrod FB internal diff: D1560578
-
James Sedgwick authored
Summary: under folly::wangle:: Test Plan: ran unit for experimental/wangle, thrift/lib/cpp/concurrency, and a user of FbThreadManager Reviewed By: hans@fb.com Subscribers: trunkagent, fbcode-common-diffs@, fugalh, alandau, bmatheny, everstore-dev@, njormrod FB internal diff: D1566128
-
Nicholas Ormrod authored
Summary: Pass const StringPieces by value instead of reference. Test Plan: fbconfig -r folly && fbmake runtests Reviewed By: robbert@fb.com Subscribers: trunkagent, sdwilsh, njormrod FB internal diff: D1569488
-
Ranjeeth Dasineni authored
Summary: This is not a fix but me seeking advice here. The context here is that in liger (our common network stack for mobile platforms), we saw bugs due to truncation and want to enable these warnings. To find those in our code, I had to first resolve the folly ones. I just got around by making the truncation explicit so that I can get to real errors. Ideally I would like owners to examine each case and fix the original/accept the explicit truncate if its intended. Let me know what you think. The last (least preferred) is for us to keep this as a liger only change. We have a couple of ways to do that but it would be nice to fix. N.B : this covers only liger dependencies Test Plan: errors resolved after these changes. Reviewed By: njormrod@fb.com Subscribers: trunkagent, doug, shilin, njormrod, seanc, pgriess FB internal diff: D1509355
-
Nathan Bronson authored
Summary: MPMCQueueTest's intrusive reference count test implementation was incorrect, so it simultaneously didn't test what it should and had a leak. Test Plan: tests, plus new __thread to track lifetimes Reviewed By: meyering@fb.com Subscribers: njormrod, soren, meyering FB internal diff: D1569448
-
Nicholas Ormrod authored
Summary: Lines exceeding 80 characters have been restructured. Test Plan: fbconfig -r folly && fbmake runtests Reviewed By: robbert@fb.com Subscribers: trunkagent, sdwilsh, fugalh, njormrod FB internal diff: D1568086
-