1
0
mirror of https://github.com/danog/amp.git synced 2024-12-15 19:07:22 +01:00
Commit Graph

226 Commits

Author SHA1 Message Date
Markus Staab
f170acee71 Check array index instead of error suppression 2015-08-18 16:01:08 +02:00
Niklas Keller
8031623a8f Check array index instead of error suppression 2015-08-18 14:46:34 +02:00
Niklas Keller
2fe4c65faa Catch Throwables in __coroutineSend on PHP 7 2015-08-18 08:55:44 +02:00
Daniel Lowrey
861fca1ebd Fix outdated docblocks 2015-08-16 20:33:07 -04:00
Daniel Lowrey
3d1fde0812 Use correct uv flags to prevent UvReactor::tick() from hanging in edge-case scenarios 2015-08-11 20:01:25 -04:00
Daniel Lowrey
7df9b175ef Perform manual GC prior to run loop end 2015-08-10 13:36:25 -04:00
Daniel Lowrey
6612bb84df Revert "gc just to be safe prior to run loop exit"
This reverts commit ad4831888f.
2015-08-08 11:50:22 -04:00
Daniel Lowrey
5cad406795 Normalize coroutine() return to Promise type 2015-08-07 11:01:36 -04:00
Daniel Lowrey
ad4831888f gc just to be safe prior to run loop exit 2015-08-06 14:37:29 -04:00
Niklas Keller
39d3212fb0 Fix documentation for Failure 2015-08-05 23:45:29 +02:00
Niklas Keller
e00d5a7c41 Fix documentation for Failure 2015-08-05 22:49:32 +02:00
Daniel Lowrey
e209ee189d Don't unload watchers when the run loop finishes 2015-08-05 13:13:16 -04:00
Daniel Lowrey
a7b057ace1 Add leading namespace slash for built-in functions 2015-08-04 23:58:49 -04:00
Daniel Lowrey
cf206dd898 Add "state" key to Amp\info() return array 2015-08-04 23:47:20 -04:00
Daniel Lowrey
70f4971ae1 Remove stream() in favor of PromiseStream 2015-08-04 23:46:49 -04:00
Daniel Lowrey
7c35dc7efd Fix keep_alive refcount off-by-one error in reactor implementations 2015-08-04 23:11:52 -04:00
Daniel Lowrey
98f609a99a Clear watchers on run() loop exit, throw on invalid run/tick/stop calls 2015-08-04 11:07:13 -04:00
Daniel Lowrey
f840ee4334 update incorrect docblock 2015-08-01 23:03:25 -04:00
Daniel Lowrey
2c8727133e functor argument is now optional in Amp\filter()
If no functor parameter is supplied, all results equal to FALSE
using a (bool) cast will be removed.
2015-08-01 13:28:41 -04:00
Daniel Lowrey
705c57483b Fail promise timeout() operations using TimeoutException 2015-07-31 15:50:27 -04:00
Daniel Lowrey
094899a74b Add boolean "keep_alive" option for all watcher types
This option determines if the watcher will keep the run() loop
from returning. By default all watchers set "keep_alive" => true.
Setting this value to false is ideal for registering non-crucial
watchers (e.g. cache invalidation timers) that should run for the
life of the program but shouldn't prevent the event loop from
returning if all essential tasks have completed.

    <?php
    echo "before run\n";
    run(function () {
        immediately(function () {
            echo "immediately\n";
        });
        once(function () {
            echo "once\n";
        }, 100, ["keep_alive" => false]);
        repeat(function () {
            echo "repeat\n";
        }, 500, ["keep_alive" => false]);
        echo "onStart end\n";
    });
    echo "after run\n";

The above snippet will have the following output:

before run
immediately
after run

The Amp\info() function now also reports the number of
keep_alive watchers currently registered via the "keep_alive" key.
2015-07-31 09:32:22 -04:00
Daniel Lowrey
bdd8503cbe init() -> driver() 2015-07-31 09:32:21 -04:00
Daniel Lowrey
b1f400cad5 misc v1 cleanup 2015-07-29 23:23:53 -04:00
Daniel Lowrey
56b6330114 Use object hashes as watcher IDs 2015-07-29 22:12:53 -04:00
Daniel Lowrey
8bcbba41a0 Move to procedural API 2015-07-29 16:59:53 -04:00
Daniel Lowrey
1d9d572ee5 promise updates are no longer variadic + misc formatting 2015-07-27 10:08:02 -04:00
Daniel Lowrey
38b3fbbbbb move PromiseStream functionality into Amp\stream() 2015-07-23 15:23:45 -04:00
Daniel Lowrey
e18b090902 use fully qualified namespace for global functions 2015-07-23 01:32:52 -04:00
Daniel Lowrey
55e379e332 Rollback static coroutine methods to namespaced functions 2015-07-23 01:30:53 -04:00
Daniel Lowrey
a4636851d6 remove deprecated functions 2015-07-22 14:49:40 -04:00
Daniel Lowrey
7335cb2517 use explicit FQDN for compile time optimizations 2015-07-22 13:54:29 -04:00
Daniel Lowrey
09e000a6d7 allow nested tick 2015-07-22 13:12:21 -04:00
Daniel Lowrey
1fa9771dde update coverage ignore 2015-07-22 13:12:14 -04:00
Daniel Lowrey
505c59d0e3 minor cleanup 2015-07-22 12:34:42 -04:00
Daniel Lowrey
f6be176a07 cleanup + tests 2015-07-22 11:38:17 -04:00
Daniel Lowrey
cdc5fecd47 Remove Streamable interface 2015-07-22 00:10:09 -04:00
Daniel Lowrey
79a33c09fe misc + testing 2015-07-21 23:59:20 -04:00
Daniel Lowrey
2cea028b1c filter() updates and tests 2015-07-21 20:09:27 -04:00
Daniel Lowrey
33fd20acb3 add tests 2015-07-21 17:25:18 -04:00
Daniel Lowrey
dcab6907c0 minor cleanup 2015-07-21 17:25:11 -04:00
Daniel Lowrey
d6b674b93b Move coroutine functions into new Coroutine class 2015-07-21 16:14:50 -04:00
Daniel Lowrey
564a81c519 misc updates + tests 2015-07-21 12:25:34 -04:00
Daniel Lowrey
c8bbf8208f misc updates 2015-07-20 22:40:06 -04:00
Daniel Lowrey
0e6560070b misc updates and tests 2015-07-20 22:27:11 -04:00
Daniel Lowrey
10037fe859 Miscellaneous reactor cleanup 2015-07-20 15:42:56 -04:00
Daniel Lowrey
288530d296 Add EvReactor 2015-07-20 15:42:42 -04:00
Daniel Lowrey
28154b4d70 Fix missing stream property assignment 2015-07-19 13:53:26 -04:00
Daniel Lowrey
d8a0c147e6 Add manual watcher refcount manipulation methods 2015-07-10 15:36:13 -04:00
Daniel Lowrey
4d4e9bad32 Replace BaseException refs with Throwable 2015-07-07 10:15:57 -04:00
Daniel Lowrey
ad96a584d5 Check coroutine nesting level before incurring "next tick" overhead 2015-06-16 12:08:24 -04:00