- 18 Apr, 2018 1 commit
-
-
Kenton Varda authored
This is necessary when someone other than the promise owner might need to destroy the state a promise is operating on. It comes up when implementing pumpTo() for userland pipes -- cancelling the pump needs to cancel any writes currently passing through the pipe.
-
- 25 Oct, 2017 1 commit
-
-
Kenton Varda authored
Fixes #286.
-
- 21 Sep, 2017 1 commit
-
-
Kenton Varda authored
These are useful in unit tests. Often, some tasks have been queued, and we want to test that a particular thing happens or doesn't happen as a result of those tasks, without actually waiting on any specific promise. We need a way to run the event queue until it is empty. For that, we add WaitScope::poll(). Or, sometimes, we want to check if a specific promise is (or is not!) resolved as a result of the tasks that have been queued so far, but we may not want to actulaly wait() on it for a couple reasons: - We may actually want to verify that the promise is *not* resolved by tasks so far. wait()ing on it would be expected to deadlock. - We may expect the promise to resolve, but would prefer not to deadlock if it doesn't resolve (we'd rather fail fast). For this, we add Promise::poll(). There are lots of tests I've written which could be simplified by this, but for now I'm not refactoring any existing tests. Note that adding these (particularly Promise::poll()) required updating the async framework a bit, in that this is the first case where PromiseNode::onReady() might be called multiple times, or might be canceled without destroying the PromiseNode entirely. Luckily this was not hard to account for. (We still have the rule that get() can only be called once, though.)
-
- 28 Apr, 2017 1 commit
-
-
Kenton Varda authored
-
- 21 Apr, 2017 1 commit
-
-
Kenton Varda authored
-
- 07 Apr, 2017 1 commit
-
-
Kenton Varda authored
-
- 07 Oct, 2016 1 commit
-
-
Kenton Varda authored
-
- 30 Mar, 2016 1 commit
-
-
Sebastian Zenker authored
Added unit test Async/GetFunctorStartAdress which just calls GetFunctorStartAdress() to provoke a core dump when running on ARM platforms. If you want to reproduce it, you don't need real ARM hardware. Just build Cap'n'proto with an ARM compiler and run it via QEMU.
-
- 01 Feb, 2016 1 commit
-
-
Kenton Varda authored
This is largely motivated by the fact that Clang currently miscompiles `.then([](auto){})`: https://llvm.org/bugs/show_bug.cgi?id=24989
-
- 20 May, 2015 1 commit
-
-
Kenton Varda authored
-
- 30 Dec, 2014 1 commit
-
-
Kenton Varda authored
A compatibility layer is provided to ease migration.
-
- 29 Dec, 2014 1 commit
-
-
Kenton Varda authored
-
- 09 Dec, 2014 1 commit
-
-
Kenton Varda authored
This is not currently used, but eventually we'll use this to support efficient inter-thread messaging. That said, I've decided that inter-thread messaging is complicated and I don't want to work on it right now.
-
- 20 Jun, 2014 1 commit
-
-
Kenton Varda authored
For portions currently copyright by Kenton (most of it), transfer copyright to Sandstorm Development Group, Inc. (Kenton's company). The license change is practically meaningless, as MIT and BSD 2-clause are legally equivalent. However, the BSD 2-clause license is sometimes confused for its ugly siblings, BSD 3-clause and BSD 4-clause. The MIT license is more immediately recognizeable for what it is. Rémy Blank and Jason Choy (the two non-trivial contributors) are on record as approving this change: https://groups.google.com/d/msg/capnproto/xXDd2HUOCcc/gbe_COIuXKYJ
-
- 30 Mar, 2014 1 commit
-
-
Remy Blank authored
-
- 10 Dec, 2013 1 commit
-
-
Kenton Varda authored
-
- 07 Dec, 2013 1 commit
-
-
Kenton Varda authored
-
- 06 Dec, 2013 2 commits
-
-
Kenton Varda authored
Extend totalSizeInWords() to also return a count of capabilities, which helps when a separate capability table needs to be allocated as well. Use this in the RPC system.
-
Kenton Varda authored
Optimize promise tail calls by making ChainPromiseNode automatically detect and remove redundant nodes.
-
- 05 Dec, 2013 2 commits
-
-
Kenton Varda authored
Make all Promise methods consistently consume the promise (returning a new promise when it makes sense), rename daemonize -> detach, and make eagerlyEvaluate() require an error handler (this caught several places where I forgot to use one).
-
Kenton Varda authored
-
- 04 Dec, 2013 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
Overhaul the way EventLoop is specialized so that it's possible to hook up to an existing event loop infrastructure that is not KJ-aware. This also makes the async IO API more dependency-injection-friendly.
-
- 30 Nov, 2013 3 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 28 Nov, 2013 1 commit
-
-
Kenton Varda authored
Revamp concurrency model, part 1: EventLoop no longer allows cross-thread event queuing, simplifying many things. Capability clients are no longer thread-safe, so they don't have to be so const. In the future, explicit ways to communicate between threads will be re-added, but threads will be treated more like separate vats that just happen to have a particularly fat pipe. Upcoming: Remove mutexes.
-
- 26 Nov, 2013 1 commit
-
-
Kenton Varda authored
Make EventLoop current when constructed, so that you can use the Promise methods even when the loop hasn't actually started yet.
-
- 22 Nov, 2013 1 commit
-
-
Kenton Varda authored
Implement exclusive promise joining: Join two Promise<T>s to create a Promise that resolves when either input resolves.
-
- 19 Nov, 2013 1 commit
-
-
Kenton Varda authored
-
- 15 Nov, 2013 1 commit
-
-
Kenton Varda authored
-
- 14 Nov, 2013 1 commit
-
-
Kenton Varda authored
-
- 03 Nov, 2013 1 commit
-
-
Kenton Varda authored
-
- 31 Oct, 2013 1 commit
-
-
Kenton Varda authored
-
- 18 Oct, 2013 1 commit
-
-
Kenton Varda authored
-
- 11 Oct, 2013 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
Refactor capability code using fork. Still too much refcounting, though. Maybe this calls for a different design for pipelining...
-
- 09 Oct, 2013 2 commits
-
-
Kenton Varda authored
Using promises for references to represent each branch of a fork doesn't work, because the fork hub will be deleted when the last branch resolves, before any continuation can run. Instead, let's just institutionalize the concept of addRef() for owned pointers.
-
Kenton Varda authored
-
- 08 Oct, 2013 1 commit
-
-
Kenton Varda authored
-