History log of /fuchsia/zircon/system/ulib/async-testutils/test_loop_dispatcher.cpp
Revision Date Author Comments
# fe6c9a20 14-Sep-2018 Joshua Seaton <joshuaseaton@google.com>

[async][test-loop] Improve error handling

Test: successful compilation
Bug: ZX-2613 #comment

Change-Id: I830567ae520382480631acef41bd6fe8a879a175


# 2c6049cb 17-Aug-2018 Joshua Seaton <joshuaseaton@google.com>

Revert "[async] Use fbl::DoublyLinkedList in TestLoopDispatcher"

This reverts commit 764b403247be7015a8b9a5e22180d100f4cdb96f.

Reason for revert: https://fuchsia-review.googlesource.com/c/garnet/+/185561
Is causing PlayerTest.FakeSegments to time out for some reason.

Original change's description:
> [async] Use fbl::DoublyLinkedList in TestLoopDispatcher
>
> Use C++ fbl::DoublyLinkedList instead of the C listnode library.
>
> Tested: affected tests pass.
> Change-Id: I3545da3738b9f6559d714f6cef2307ab421d3b7a

TBR=jeffbrown@google.com,joshuaseaton@google.com

Change-Id: Ie817ec314bf0d7f89d54fb78cf5cba8520715776
No-Presubmit: true
No-Tree-Checks: true
No-Try: true


# 764b4032 05-Aug-2018 Joshua Seaton <joshuaseaton@google.com>

[async] Use fbl::DoublyLinkedList in TestLoopDispatcher

Use C++ fbl::DoublyLinkedList instead of the C listnode library.

Tested: affected tests pass.
Change-Id: I3545da3738b9f6559d714f6cef2307ab421d3b7a


# 7e32e49e 27-Jul-2018 Joshua Seaton <joshuaseaton@google.com>

[async] Add TestLoopDispatcher::HasPendingWork().

-The logic of TestLoop::RunUntil() is simplified.
-Moreover, this method will be an asset in the move towards
using multiple dispatchers: it greatly simplifies the logic of time
advancement to know when the set of dispatchers collectively has no
more work to do.

Tested: all tests in the peridot kitchen sink run successfully.
Bug: LE-472
Change-Id: Idd69da9707297106cd1f6c0ffa0eb1e9270afbd3


# 2f2636f3 13-Jul-2018 Wez <wez@chromium.org>

[zx] Remove zx_handle_t overload of zx::port::cancel().

Bug: ZX-2310
TEST=CQ
Change-Id: Ibb8c4c3459066bb83753472b2801c6a7684f48a4


# dcc93e9d 03-Jul-2018 Joshua Seaton <joshuaseaton@google.com>

[async] Make time external to TestLoopDispatcher.

This change sets the stage for the creation a 'multi-queue' loop
that manages multiple dispatchers with a shared sense of fake time.

Moreover, dispatching is made more fine-grained: waits and tasks
are now dispatcher one a time.

Tested: all tests (Topaz and down) pass.
Bug: LE-472

Change-Id: Ic254dbaf0c9b05fc16080f3a504eed23f65349cc


# ad6814a2 13-Jul-2018 Wez <wez@chromium.org>

[zx] Switch port::cancel() to accept container rather than raw handle.

Bug: ZX-2310
TEST=CQ
Change-Id: Ib95fc4a6da1a1e9aef8a86cb9bcee39044c9cbb2


# 6d1a3e77 28-May-2018 Joshua Seaton <joshuaseaton@google.com>

[async] Fix bug in TestLoopDispatcher::CancelWait

CancelWait() was not checking to see if a wait was in the list of stored
waits before deleting it.

Change-Id: I921206396e9910baaa751cb1b396968f353a78f6


# 997ec13a 24-May-2018 Adam Barth <abarth@google.com>

[syscalls] Remove count arguments from port_queue and port_wait

This argument is not used and always must be one. I tried implementing
some reasonable behavior for this parameter on port_queue, but it wasn't
clear what to do when we encounter an error during the queue operation
because there isn't an out parameter for how many we succeeded in
queuing.

Rather than having a half-baked feature, we should just remove the
parameter and add another function that does vectorized versions of
these operations if we need that in the future.

Change-Id: Ifffcd6d705442cc830912a67c8117ffe5ec8295d


# 27618b32 10-Apr-2018 Joshua Seaton <joshuaseaton@google.com>

[async] Update async::TestLoop API

-Introduce RunFor() and RunUntil()
-Return booleans instead of zx_status_t which give whether work was done
during a Run* call.
-While dispatching tasks, progressively advance the fake clock.

BUG: ZX-1819
Change-Id: Ia3f8b47a10610492eb0e336aa0df65e74f6a38a6


# cb9b1324 16-Apr-2018 Garret Kelly <gdk@google.com>

[zx] Call zx_port_{wait,queue} with correct count

In the near future zx_port_{wait,queue} will not accept a count of zero.
Change all zircon callers to call these functions with a count of one.

ZX-1291 #comment

Change-Id: I5697208c7931a5e117f469c901c78f65615eeee0


# 89d2b24d 10-Apr-2018 Jeff Brown <jeffbrown@google.com>

[async] Tidy up the libasync API futher.

Deleted WaitWithTimeout since it is no longer used.
Removed flags and reserved storage.
Removed return code from wait handler.
Removed *_or_report_error variants after further consideration.
Deleted the non-RAII variants of the C++ wrappers; these wrappers
might as well be safe to use. Clients desiring minimum overhead
can use the C API instead if they prefer.
Made the C++ wrappers more systematic; each one has a fbl::Function
and a Method based variant.
Added a C++ wrapper for Tasks which takes a no-arg closure.
Improved consistency across all async operations, including docs.
Ported all programs to the new API as required.
Beefed up the tests.

Change-Id: I97beca26cec6d94fa7efd282c8d2620cdbcb84e5


# 2485acfa 06-Apr-2018 Jeff Brown <jeffbrown@google.com>

[async] Tidy up the libasync API for tasks and receivers.

Remove flags fields and reserved storage.
Make the C++ wrappers friendlier.
Move the ops invokers into libasync.a itself in preparation for
adding versioning to the ops structure.
Add *_or_report_error() function variants which make it easier
to systematically handle errors while posting tasks or
enqueuing packets.
Removed the return value from task handlers to reduce confusion
around the lifetime of the task structure and remove an
unusual error handling scenario in case of a failure to
schedule a task to be repeated.
Pass the Task* to the handler for consistency with the C API.
Added some missing static library dependencies.
Reduce use of libfbl (except fbl/function.h).
Remove uses of private inheritance.

Change-Id: I7ccea5b68d6bccb2c7a236d112428c9b17fe8cdd


# 868ea7d9 05-Apr-2018 Joshua Seaton <joshuaseaton@joshuaseaton.mtv.corp.google.com>

[async] Move AsyncStub to lib/async-testutils

Change-Id: Id05d08eaafc48c8778039e4c17b28186554ed90f


# 8c521971 21-Mar-2018 joshuaseaton <joshuaseaton@joshuaseaton.mtv.corp.google.com>

[async] Introduce a test async_t implementation with fake time.

Unit tests included.

BUG: ZX-1819

Change-Id: I808eef9360873ec882bdffcd9020006679925f9e