- 20 Jul, 2015 8 commits
-
-
Steve O'Brien authored
Summary: The creator thread ID is saved to indicate the singleton is already being built (to help detect dependency cycles). However if the creation function throws an error, that thread ID persists, and then if the same thread tries again to build the singleton it will be falsely detected as a dependency cycle. This clears that state in the case of failure. Reviewed By: @chipturner Differential Revision: D2256441
-
Hannes Roth authored
Summary: This reverts commit 956351018a495af89575526536af7e7c0bb285aa. Reviewed By: @labrams Differential Revision: D2258219
-
Steve O'Brien authored
Summary: In nested loop, loop condition is incorrect. Fixed var (should be `ii` not `i`) Reviewed By: @pgriess Differential Revision: D2255702
-
Tom Jackson authored
Summary: I'm upgrading assertions to throws, since these are fatal in all circumstances. If something is explicitly `Optional`, it makes sense to fail loudly if it is misused in this manner. Reviewed By: @yfeldblum Differential Revision: D2247612
-
James Sedgwick authored
Summary: to unbreak OSS wangle tests build Reviewed By: @bugok Differential Revision: D2240264
-
Tudor Bosman authored
Summary: What it says on the tin. Reviewed By: @fugalh Differential Revision: D2230390
-
Pavlo Kushnir authored
Summary: guard pages may make debugging more painful. For example, in some cases they increased "perf" initialization time. Reviewed By: @alikhtarov Differential Revision: D2247188
-
Hannes Roth authored
Summary: I figured it out. This works. The two extra futures are a small overhead (just two pointers). The `Core`s are allocated anyway, so this is pretty much optimal. A timeout now raises on the current Future, and a fulfilled promise cancels the timeout Future. Reviewed By: @yfeldblum Differential Revision: D2232463
-
- 15 Jul, 2015 8 commits
-
-
Sara Golemon authored
Summary: As the comment says, we can ignore errors in setting the size. So it stands to reason we can ignore setting the size as well. Reviewed By: @yfeldblum Differential Revision: D2242882
-
Sophia Wang authored
Summary: There are more use cases that the Destruction/Guard pattern can be used than current DelayedDestruction provides. This diff makes the pattern more general (remove self destruct) and lets DelayedDestruction derive from that. The functionalities of DelayedDestruction is kept unchanged. I leave destroy(), Destructor class, and destroyPending_ in DelayedDestruction since they are not required by our CallbackGuard in proxygen. I add a shouldDestruct() function to allow customized conditions on when to call destructor. I haven't made destroyNow() a std::function since I only need it to be set at instatiation time. If there is any other use case that needs destroyNow() to be a std::function, I can do that as well. Reviewed By: @afrind Differential Revision: D2202575
-
Joe Richey authored
Summary: Before we didn't do anything at all with the ::infinite value for our generators, now all the sources operators and sinks are properly notated. The one signifcant change regarding what is allowed concerns 'cycle' which now (when called with no arguments) always produces an infinite generator. This is fine for all but the weirdest of generators fed into cycle. Reviewed By: @ddrcoder Differential Revision: D2240328
-
Joe Richey authored
Summary: When adding in the 'filter()' default behavior, I considered adding in similar behavior for 'any' and 'all'. However, we had 'any' with no funciton call basically check if anything was present, not testing a predicate. This can create a confusing senario, so I removed this behavior from 'any' and added in the 'isEmpty' and 'notEmpty' sinks. Now the calls 'any()' and 'all()' (called with parens, so old uses won't compile) check for truthy values simlar to 'filter()'. I also added some unit tests and changed 'static const' objects to 'constexpr'. Reviewed By: @ddrcoder Differential Revision: D2234637
-
Andrii Grynenko authored
Summary: Integrating RequestContext into fibers library. RequestContext is saved for every task, when that task is created. If RequestContext is overriden when a task is being run (within fiber, in runInMainContext, within function passed to await call) the new context will continue to be used for the task. Reviewed By: @alikhtarov Differential Revision: D2240152
-
Lucian Grijincu authored
Reviewed By: @philippv Differential Revision: D2240628
-
Yedidya Feldblum authored
Summary: [Folly] Fix Build: folly/io/async/test/ScopedEventBasedThreadTest.cpp Failure with latest clang: folly/io/async/test/ScopedEventBaseThreadTest.cpp:72:8: error: explicitly moving variable of type 'folly::ScopedEventBaseThread' to itself [-Werror,-Wself-move] sebt = std::move(sebt); Reviewed By: @markisaa Differential Revision: D2238762
-
Yedidya Feldblum authored
Summary: [Folly] File ctor should take StringPiece. This way we can use it with `std::string` and `folly::fbstring` a touch more easily. Reviewed By: @luciang Differential Revision: D2235870
-
- 13 Jul, 2015 4 commits
-
-
Sara Golemon authored
-
Andrii Grynenko authored
Reviewed By: @chipturner Differential Revision: D2235232
-
Kjell Schubert authored
Summary: This is only a simple #include file split, no functional change was made. SmallLocks.h provides 2 classes: MicroSpinLock and PicoSpinLock, with the latter not being available on 32bit platforms. There are several classes in folly that included SmallLocks.h but only needed MicroSpinLock, these also refused to compile on 32bit, e.g. folly/futures/Future.h. Now these compile fine. Reviewed By: @yfeldblum Differential Revision: D2234263
-
Yedidya Feldblum authored
Summary: [Folly] An has_member_type macro. Reviewed By: @juchem Differential Revision: D2229775
-
- 09 Jul, 2015 6 commits
-
-
Joe Richey authored
Summary: After discussion with Tom about frozen files, we noticed that the use case of filtering out somthing that looks like false (0, nullptr, folly::none) is unnecessarily tedious. So folly::gen::filter now filters by the value of the item by default. Reviewed By: @ddrcoder Differential Revision: D2220582
-
Subodh Iyengar authored
Summary: Add mocks for the new isBufferMovable methods. Reviewed By: @yfeldblum Differential Revision: D2222642
-
Yedidya Feldblum authored
Summary: [Folly] ThreadedExecutor. It's an Executor that runs functions each in its own thread. Kind of simple. Suitable for a few types of strange cases. Reviewed By: @hannesr Differential Revision: D2226211
-
Tudor Bosman authored
Summary: Add a way to tell whether an IOBuf (either indvidually or the whole chain) refers to memory that's outside of IOBuf's control (via WRAP_BUFFER). That is, can you assume that clone() will extend the lifetime of the memory? Is it safe to use clone() instead of copying the data (and avoid a copy)? Reviewed By: @simpkins Differential Revision: D2191883
-
Steve O'Brien authored
Summary: Early in the startup process there may not be a default signal handler installed, and stack traces are not available; also during the startup process is when init-order fiascos occur. Dump a stacktrace and fatal when an unregistered singleton is used. Also fatals -- with glog `LOG(FATAL)`, which triggers an ABRT signal -- on other illegal and unrecoverable usage like double-registration or circular dependency. Reviewed By: @andriigrynenko Differential Revision: D2200408
-
Mark McDuff authored
Summary: Ran into a bug in D2158570 where we dtor'ing these data structures before the event bases destructed, so the assert on line 47 (of the old code) failed. Reviewed By: @andriigrynenko Differential Revision: D2198318
-
- 07 Jul, 2015 6 commits
-
-
Sara Golemon authored
-
Alexey Spiridonov authored
Summary: This is the first of a series of diffs to get folly, fbthrift, and bistro to run on Ubuntu 12.04 LTS, which is what powers Travis CI. It's important for folly to be easily usable with Travis CI, since everything C++ depends on it, and we really want all FB open-source projects to be monitored via continuous integration to avoid breaking their OSS builds. Thanks to @int's work on `mcrouter`, this was considerably easier than it would have been otherwise. This puts us a hop and a skip away from actually running folly's `make && make check && make install` on Travis CI. Do y'all think this is useful? Reviewed By: @yfeldblum Differential Revision: D2217441
-
Sara Golemon authored
-
James Sedgwick authored
Summary: Another stab at D2111063 now that we have the go ahead to actually open up the wangle github repo Reviewed By: @djwatson, @mdordal Differential Revision: D2178291
-
Philip Pronin authored
Summary: Drop those `const_cast<>` hacks. Reviewed By: @ot Differential Revision: D2217629
-
Hans Fugal authored
Summary: This is a documentation dump, with updates from the past couple weeks. Most notably, the new information about `Future<Unit>` replacing `Future<void>`. Reviewed By: @hannesr Differential Revision: D2211135
-
- 02 Jul, 2015 7 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Lift thrift/lib/cpp/test/TNotificationQueueTest. `NotificationQueue` is already moved into folly; move its accompanying test suite as well. Reviewed By: @simpkins Differential Revision: D2207104
-
Sara Golemon authored
Summary: Got this ifdef wrong in my last change here. Reviewed By: @paulbiss Differential Revision: D2213708
-
Hans Fugal authored
Summary: If you try to make a future or promise of `void`, you will get this nice error message telling you to use `Unit` instead. Reviewed By: @djwatson Differential Revision: D2211239
-
Michael Lee authored
Summary: The Homebrew setup fails to compile on OSX. Reviewed By: @paulbiss Differential Revision: D2212084
-
Yedidya Feldblum authored
Summary: [Folly] folly::Unit::Drop. Antisymmetric to folly::Unit::Lift. Reviewed By: @fugalh Differential Revision: D2211725
-
Hans Fugal authored
Summary: Fix so `Timekeeper::at(now() - something)` works. Also introduce a test which explicitly tests when <= now codepath, which wasn't broken per se here, but which test also tickled this bug. Reviewed By: @jsedgwick Differential Revision: D2209166
-
Hans Fugal authored
Reviewed By: @yfeldblum Differential Revision: D2209095
-
- 01 Jul, 2015 1 commit
-
-
Hans Fugal authored
Summary: This is three codemods: * `(folly::(Future|Promise|Try))<void>` -> `\1<folly::Unit>` * `(Future|Promise|Try)<void>` -> `\1<Unit>` * add `using folly::Unit` statements where needed Then * undo false positives in javascript files and fibers::Promise cf D2201259, which this will land with Reviewed By: @djwatson Differential Revision: D2201801
-