#
39a67dc8 |
|
05-Aug-2018 |
Doug Evans <dje@google.com> |
[ulib][async] Add support for exception ports Tested: runtests [which includes new tests for the new functionality] Change-Id: Ib8eaf30eb2d9abf3f3ca72a0d77450ea52151149
|
#
40b25f35 |
|
17-Jul-2018 |
David Moore <davemoore@google.com> |
[async] Use constant for async loop configuration. This change enforces that async_create_loop() can not take a NULL config and removes the default null_ptr config from async::Loop() A couple of client uses in zircon had to be updated as well. The change needs to wait for the depedent changes other layers have cleared the CQ. Higher level trybots will be run first. Test:CQ Change-Id: Ia643da71acad0d843297b4dbbad5cdf6db2bb741
|
#
c9fa43e3 |
|
12-Jul-2018 |
David Moore <davemoore@google.com> |
[async] Change async_t -> async_dispatcher_t This removes the compatibility wrappers once all the higher layers have been migrated. Bug:ZX-2337 Test:CQ Change-Id: If8b59c157bbfadc63b426e679bce641ee7a7abd0
|
#
6a569be5 |
|
13-Jul-2018 |
David Moore <davemoore@google.com> |
[async] Publish constant for async loop configuration. First step towards disallowing NULL being passed to async_loop_create() and async::Loop() This adds a new constant and provides an alternative to the existing one to be consistent with naming. It also updates all client calls within zircon. Test:CQ Change-Id: I93c53e9b575248293dd5bfeea6269281fc329aa6
|
#
e64227cd |
|
14-Jul-2018 |
Roland McGrath <mcgrathr@google.com> |
[build][ulib][async-loop] Define _ALL_SOURCE directly in source using extensions The way to make the source code the most resilient to what options it's compiled with is to define feature-test macros at the top of the source file when a particular source file uses nonstandard extensions declared in standard headers. Change the build rules so that library modules exported as source get compiled in a default feature-test environment (without _ALL_SOURCE). This ensures the Zircon build will catch any exported source that is not standalone with respect to its feature-test expectations. Bug: DX-315 #done Test: CQ Change-Id: Ife671f2bebaa2eccbe9abbe2cd3d7ec842b9488e
|
#
ab699321 |
|
02-Jul-2018 |
David Moore <davemoore@google.com> |
[sysapi] Update API to match C rubric. Test: CQ Change-Id: I930f939337634366e31aefdf55724198851dbd90
|
#
fabb8fe6 |
|
04-Jul-2018 |
David Moore <davemoore@google.com> |
[async] Change async_t -> async_dispatcher_t Change name of dispatcher type from async_t to async_dispatcher_t Keep typedef of async_t for compatibility Change async_{get,set}_default() to async_{get,set}_default_dispatcher() Again, keep compatible apis until other layers have been modified to use new api. Bug:ZX-2337 Test:CQ Change-Id: If0b5d061fd114d60e23078dbb5f2a6ed9ed6f6cc
|
#
47cff597 |
|
26-Jun-2018 |
George Kulakowski <kulakowski@google.com> |
[clock] zx_clock_get(ZX_CLOCK_MONOTONIC) -> zx_clock_get_monotonic() Test: no functional change Change-Id: Iaa513c521d96b178458acc707be3646067971701
|
#
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
|
#
e8968ef8 |
|
17-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Add a version number to the async ops structure. Bug: ZX-1773 #done Change-Id: I3f1c1e31c01d80f2d7445c0fdcfe6657a79901d7
|
#
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
|
#
45c8863a |
|
12-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Strengthen invariants for list of pending waits. Ensure that we don't try to cancel waits which are not in the list because they are being dispatched concurrently or because the loop is shutting down (because we don't drain the port packets). Also be more strict about the set of errors returned. In particular, never return ZX_ERR_BAD_HANDLE since it indicated something is deeply wrong with the state of the loop or the wait objects and tends to balloon into hard to find bugs much further downstream (such as during loop shutdown). Change-Id: I67567a1e14bfbeaca0ff0bee9cb46faacdb53ba6
|
#
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
|
#
ec182715 |
|
10-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Fix timer restart logic. We should restart the timer after removing the task from the list. This bug was essentially benign as the timer would simply have fired prematurely and then been restarted all over again. Change-Id: I8551b8782397fd70ed326f4069524cb25448689f
|
#
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
|
#
c82841ad |
|
04-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Make async_loop_t and async_t be different types. It was confusing that async_loop_quit() took an async_t* as argument but was only valid when called with a dispatcher created using async_loop_create(). So use distinct types to represent the message loop and dispatcher interfaces. Change-Id: If17b08ed8c17203afd2383d5b2962f60ef5e82b3
|
#
8d6914b9 |
|
04-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Clarify the purpose of kAsyncLoopConfigMakeDefault. This change includes compatibility shims to be removed once the upper layers have been migrated. Change-Id: I99a492078d30092677968c659ad3ed38ff9d5b6c
|
#
76df15cb |
|
04-Apr-2018 |
Jeff Brown <jeffbrown@google.com> |
[async] Move async-loop implementation to its own directory. People keep getting confused by the relationship between async-loop and the rest of the library. So let's fix it. This change includes compatibility includes for loop.h to be removed after upper layers are fixed to use the new paths. Change-Id: I95c57be533fbd91468275bb2470890a4f10101eb
|