Niklas Keller
1286087c06
Rename Pause to Delayed
...
Pause doesn't cover the delayed value use case.
2017-05-02 07:02:02 +02:00
Niklas Keller
17224616aa
Add more grace periods for timing dependent tests
2017-04-26 21:37:09 +02:00
Niklas Keller
37026dbaae
Put memory leak tests into a group to enable skipping
...
Also fixes the missing directory on Travis.
2017-04-26 20:27:59 +02:00
Niklas Keller
136ccc7dad
Run UV tests in a separate PHP instance
2017-04-26 20:20:08 +02:00
Aaron Piotrowski
8ca8009074
Remove note about yielding in finally
...
Yielding in finally will work as long as the generator is not force closed (for example, a yielded promise is never resolved and the coroutine object is subsequently destroyed).
2017-04-25 14:29:10 -05:00
Aaron Piotrowski
e1491b1925
Handle invalid yield like a failed promise
2017-04-24 13:08:30 -05:00
Aaron Piotrowski
34192ceca5
Drop Coroutine::dispose()
2017-04-24 11:10:05 -05:00
Niklas Keller
c3fc6659cd
Revert to assertEquals where order might be different, remove strict rule
2017-04-24 16:28:56 +02:00
Niklas Keller
79ab41e5bf
Update php-cs-fixer to version 2 and upgrade rules
...
This also fixes the code style according to the new rules.
2017-04-24 16:22:02 +02:00
Niklas Keller
0e376fbed9
Increase variation grace period in tests
2017-04-24 15:27:04 +02:00
Niklas Keller
e9d48a68d5
Rename createRunnable to asyncCoroutine and createCallable to coroutine
2017-04-24 15:27:04 +02:00
Niklas Keller
05670678e1
Fix tests regarding UnionTypeError
2017-04-24 15:27:04 +02:00
Niklas Keller
70e63a3748
Fix code style according to new rules
2017-04-24 15:27:04 +02:00
Niklas Keller
dfa40f5b00
Rename wrap to createRunnable and coroutine to createCallable
2017-04-24 15:27:04 +02:00
Niklas Keller
4577f92625
Remove unnecessary usages of Amp\wrap
2017-04-24 15:27:04 +02:00
Aaron Piotrowski
e75c62a5fd
Do not depend on watcher execution order
...
Loop driver spec says order is not guaranteed.
2017-04-21 12:18:40 -05:00
Aaron Piotrowski
6375d0881d
Use same FD for read and write
2017-04-21 10:08:58 -05:00
Aaron Piotrowski
ef51893b69
Test multiple watchers on same FD
2017-04-21 10:02:10 -05:00
Aaron Piotrowski
76e0913d9b
Fix timer test comment
...
The concept of time continues to elude me…
2017-04-20 10:00:57 -05:00
Aaron Piotrowski
4792bf52fe
Emulate "now" behavior of libuv/libev in NativeDriver and EventDriver
...
Timers created while not running when using NativeDriver and EventDriver will include the elapsed time before run() is called. This matches the behavior of EvDriver and UvDriver. Addresses #113 .
2017-04-19 17:21:23 -05:00
Bob Weinand
61b88a780e
Merge remote-tracking branch 'origin/kelunik-v2-review'
2017-04-15 00:42:07 +02:00
Aaron Piotrowski
38a6066e53
Remove Message
2017-04-14 09:23:47 -05:00
Niklas Keller
5e545301cd
Rename Listener to StreamIterator
2017-04-13 18:20:46 +02:00
Niklas Keller
3e8b37f21f
Remove Amp\Stream\interval and add delay option to fromIterable
2017-04-13 18:05:41 +02:00
Aaron Piotrowski
cdf28fa938
Drop max continuation depth
...
It seems unlikely a real-world application would run out of memory due to call stack depth for normal coroutine continuations (that is, where infinite recursion is not root problem). Hopefully time will not prove me wrong…
2017-03-30 23:45:54 -05:00
Aaron Piotrowski
2f7e9a0746
Run returned generator as coroutine from onResolve and onEmit callbacks
2017-03-27 18:37:55 -05:00
Aaron Piotrowski
173549ebba
Halt recursive runs with each call to stop, addresses #84
2017-03-27 11:42:51 -05:00
Aaron Piotrowski
cb717952f1
Validate number of required promises
2017-03-27 11:42:11 -05:00
Aaron Piotrowski
67f9f4a569
Drop lift and Promise\map; add required param to Promise\some
2017-03-26 12:34:34 -05:00
Niklas Keller
995f6f1f6c
Disable coverage by default, increase timeout for signal test
2017-03-25 21:47:30 +01:00
Niklas Keller
c838a0ae8f
Only cache dist files on Travis and use --prefer-dist
2017-03-25 21:40:22 +01:00
Niklas Keller
ff5fef4b93
Fix UV executing multiple IO watchers in different ticks, fixes #85
2017-03-25 19:52:17 +01:00
Niklas Keller
2aa91a6c25
Rename Stream::listen to Stream::onEmit
2017-03-21 18:29:51 +01:00
Niklas Keller
ce269fa516
Rename Promise::when to Promise::onResolve, resolves #77
2017-03-21 17:23:37 +01:00
Aaron Piotrowski
a927b3cb06
Separate functions into Promise and Stream namespaces
2017-03-15 19:02:04 -05:00
Niklas Keller
ea67e113b2
Add test for loop accessor
2017-03-15 08:40:58 +01:00
Niklas Keller
5663f3a94e
Add test for isSupported
2017-03-15 08:32:05 +01:00
Niklas Keller
c711c1c2d2
Remove test debugging leftovers
2017-03-15 07:34:25 +01:00
Niklas Keller
d61709db45
Re-enable generator test and fix it
2017-03-15 07:32:43 +01:00
Niklas Keller
5b52b94fe0
Test that loop drivers rethrow and run generators as coroutines
2017-03-15 00:34:37 +01:00
Aaron Piotrowski
a566ff0c99
Fix signal tests
2017-03-14 16:47:54 -05:00
Niklas Keller
45ea818883
Test Amp\capture for non-promise
2017-03-14 22:36:24 +01:00
Niklas Keller
dfab1d885f
Add missing coroutine tests
2017-03-14 22:32:14 +01:00
Niklas Keller
179eb3d6f8
Add 1ms grace period for timing tests
2017-03-14 22:18:47 +01:00
Niklas Keller
d8f3810310
Add more tests for functions.php
2017-03-14 22:15:36 +01:00
Niklas Keller
4442f6cd33
Add test for Producer being already resolved
2017-03-14 22:05:45 +01:00
Aaron Piotrowski
6b9ec609c1
Add UnionTypeError
2017-03-14 13:15:31 -05:00
Niklas Keller
c13e8e3a66
Use Error instead of InvalidArgumentException, remove test file
2017-03-14 18:44:44 +01:00
Aaron Piotrowski
5bdfccde97
Update DriverTest
2017-03-14 11:50:24 -05:00
Aaron Piotrowski
fd7587b0fd
Fix risky tests
...
Fixes #81 .
2017-03-13 18:54:08 -05:00
Niklas Keller
20acaf123e
Remove unsused code from InvalidWatcherException, add handle tests for drivers
2017-03-13 13:56:46 +01:00
Aaron Piotrowski
f187d4b31a
Accept React promises in rethrow, wait, timeout, pipe, and capture
...
Fixes #75 .
2017-03-13 07:17:06 +01:00
Aaron Piotrowski
8b7fb9ece3
Merge pull request #72 from amphp/issue-68
...
Implement yielding arrays as implicit all operator
2017-03-12 22:45:31 -05:00
Niklas Keller
77bd05b807
Fix tests and Producer React adaption
2017-03-12 22:09:19 +01:00
Niklas Keller
8f903b62db
Add more tests for React promise adaption in various places
2017-03-12 21:02:26 +01:00
Niklas Keller
e8ea4e2ba9
Implement yielding arrays as implicit all operator, fixes #68
2017-03-12 19:42:25 +01:00
Aaron Piotrowski
cd4328ab48
Merge branch 'react-compatibility'
2017-03-12 11:38:48 -05:00
Pieter Hordijk
2db7bed1b6
Fixed typos an promise -> a promise
2017-03-12 17:36:07 +01:00
Niklas Keller
d748855a51
Fix some risky tests
2017-03-12 17:33:46 +01:00
Niklas Keller
766b3224d1
Rename drivers to have a Driver instead of Loop suffix
2017-03-12 11:21:44 +01:00
Aaron Piotrowski
7ad10f5d7d
Add support for React promises
2017-03-11 09:17:43 -06:00
Niklas Keller
fe88413a17
Upgrade to PHPUnit 6
...
This commit removes Humbug, as it's no longer maintained and not
compatible with PHPUnit 6.
2017-03-11 14:57:03 +01:00
Niklas Keller
61d7f1b8d7
Remove remaining group use statements
2017-03-11 14:43:57 +01:00
Aaron Piotrowski
d505a13e18
Update promise test
2017-03-10 23:40:30 -06:00
Niklas Keller
be34c49a2d
Fixup all remaining issues, tests pass locally
2017-03-10 22:20:28 +01:00
Niklas Keller
4f021220a2
Merge async-interop/promise-test into amphp/amp
2017-03-10 22:07:26 +01:00
Niklas Keller
0be9ae9ade
Switch from AsyncInterop\Promise to Amp\Promise
2017-03-10 21:58:46 +01:00
Niklas Keller
e64bbfb9f5
Add Loop::set, auto-wrapping, fixup things
2017-03-10 21:31:57 +01:00
Niklas Keller
f4f9008ca0
Merge amphp/amp repository into amphp/amp
2017-03-10 18:26:17 +01:00
Niklas Keller
942cf801bd
Merge async-interop/event-loop repository into amphp/amp
2017-03-10 18:07:13 +01:00
Aaron Piotrowski
72378e2b82
Add Amp\call()
2017-02-22 15:52:30 -06:00
Aaron Piotrowski
1369f5fd47
Assert callback count
2017-02-10 09:41:43 -06:00
Aaron Piotrowski
b72e504eab
Ensure correct argument order in multi-argument lift
2017-02-09 22:34:24 -06:00
Aaron Piotrowski
5dade2443f
Fix error in Message with empty stream
2017-01-31 17:30:05 -06:00
Aaron Piotrowski
5f284b2f70
Refactor Message, add Iterator
2017-01-31 17:09:38 -06:00
Aaron Piotrowski
0631560c65
Merge pull request #62 from amphp/drop-choose
...
Drop Amp\choose
2017-01-15 08:49:11 -06:00
Aaron Piotrowski
84917e7786
Add Message and Listener::getBuffered()
2017-01-13 18:46:32 -06:00
Aaron Piotrowski
df901a0305
Remove stream() method from Listener
2017-01-13 18:12:38 -06:00
Niklas Keller
36df722e95
Remove ChooseTest
2017-01-13 20:09:46 +01:00
Aaron Piotrowski
a643f9a260
Remove last consumed value from listener before drain
2017-01-11 20:13:12 -06:00
Niklas Keller
5a92c31197
Fix bootstrap test and execute it
2017-01-08 17:24:25 +01:00
Niklas Keller
30a6ac24ed
Test bootstrap file
2017-01-08 17:12:04 +01:00
Aaron Piotrowski
4c48037295
Add reference/unreference methods to Pause
2017-01-08 01:15:57 -06:00
Aaron Piotrowski
ae28eae552
Lazy → LazyPromise
2017-01-08 01:02:11 -06:00
Aaron Piotrowski
0a79a063a6
Drop redundant tests
...
Covered by testInvalidYieldCatchingThrownException and testInvalidYieldCatchingThrownExceptionAndThrowing.
2017-01-08 00:34:41 -06:00
Aaron Piotrowski
5ad1fdb38b
Add more Listener tests and kill another Humbug mutant
2017-01-08 00:22:07 -06:00
Niklas Keller
3b46c168a5
Improve tests and kill some Humbug mutants
2017-01-07 22:55:34 +01:00
Aaron Piotrowski
2976ebdbb5
Throw on consecutive calls to Listener::advance(); better property names
2017-01-07 12:31:36 -06:00
Aaron Piotrowski
cf5ebb1408
Better error message when emitting after resolve
2017-01-07 12:25:04 -06:00
Niklas Keller
bc110c4d63
Add test for callback combination in WhenQueue
2017-01-07 14:24:21 +01:00
Niklas Keller
ae69e92266
Update to promise 0.4.0 and event-loop 0.5.0, add humbug config
2017-01-07 13:47:45 +01:00
Niklas Keller
568183b261
Update to event-loop 0.5.0
2017-01-07 13:45:03 +01:00
Niklas Keller
559c64fdb8
Add test for invalid stream arguments
2017-01-06 23:16:06 +01:00
Aaron Piotrowski
c80f264e7e
Remove unneeded support check
2017-01-05 17:21:30 -06:00
Aaron Piotrowski
02c2fcf0fa
Add implementation using event extension
2017-01-05 14:08:33 -06:00
Aaron Piotrowski
210b6ff258
Observable → Stream
2017-01-03 19:10:27 -06:00
Josh Di Fabio
b9b49b3eaf
Change namespace to AsyncInterop\Loop
2017-01-02 20:48:48 +00:00
Aaron Piotrowski
7cd505342a
Update PromiseTest
...
setUp() and tearDown() code moved to async-interop/promise-test
2016-12-30 13:01:09 -06:00
Aaron Piotrowski
a872f14fd4
Drop Amp\range(), add Amp\observableFromIterable()
2016-12-30 12:50:09 -06:00
Aaron Piotrowski
b5d5b8dff1
Drop loop wrapper functions
2016-12-29 16:57:08 -06:00
Aaron Piotrowski
5651240615
Update to promise spec v0.3
...
Dropped strict-types due to spec requiring weak types in callbacks.
2016-12-29 16:29:27 -06:00
Aaron Piotrowski
b1e58862b2
Add extension required annotations on Ev and Uv loop tests
2016-12-29 14:47:06 -06:00
Aaron Piotrowski
225c0703ee
Merge branch 'event-loop-v0.4' into uv
2016-12-28 13:02:20 -06:00
Niklas Keller
53bd12bbbd
Rename Loop::info to Loop::getInfo
...
We use `get` for all other similar methods, too. Closes #102 .
2016-12-23 10:58:26 +01:00
Aaron Piotrowski
8ef760f53c
More tests
2016-12-17 08:16:17 -06:00
Aaron Piotrowski
11f1c7e7c4
Amp\lazy() → Amp\Lazy
...
Plus some tests!
2016-12-15 18:50:33 -06:00
Aaron Piotrowski
6e97e6630d
Fix some function bugs and add more tests
2016-12-15 17:31:57 -06:00
Aaron Piotrowski
c73ca4e427
Add Emitter and Observer tests
2016-12-13 15:29:54 -06:00
Niklas Keller
1299e51ca6
Add tests for InvalidYieldError, improve key display
...
Without something like var_export, null and false are casted to an empty string.
2016-12-11 17:08:17 +01:00
Niklas Keller
a66f25e4f6
Fix tests
2016-12-11 16:39:58 +01:00
Aaron Piotrowski
3f2e0e1b72
Fix method name in wait() test
2016-11-14 16:29:49 -06:00
Aaron Piotrowski
9927ad5b4f
Awaitable → Promise
2016-11-14 13:59:21 -06:00
Aaron Piotrowski
96e1178b89
Code, docblock, and comment cleanup
2016-08-17 22:25:54 -05:00
Aaron Piotrowski
a8d7d71a1a
Drop Future and Producer
2016-08-17 21:17:31 -05:00
Aaron Piotrowski
36bfc3e20a
Fix namespace
2016-08-16 23:27:10 -05:00
Aaron Piotrowski
8eda038155
Use strict types in tests; update some tests
2016-08-16 16:39:25 -05:00
Aaron Piotrowski
7bc08b9a6a
Replace leftover LogicExceptions exceptions with Error
2016-08-12 16:58:53 -05:00
Aaron Piotrowski
496152282e
Update Amp\coroutine() tests
2016-08-12 16:56:13 -05:00
Aaron Piotrowski
69ec812bc0
Require PHP 7
2016-08-11 14:52:40 -05:00
Niklas Keller
74e2577b25
Rename fetch/storeState to get/setState
2016-08-06 14:49:08 +02:00
Niklas Keller
6cde9f5495
Merge Registry into Driver
2016-08-04 21:08:52 +02:00
Aaron Piotrowski
9055f159e7
Revert some() to v1 behavior
2016-07-31 00:31:04 -05:00
Aaron Piotrowski
5a06b1cdc1
Update tests and remove unused tests
2016-07-19 00:05:40 -05:00
Aaron Piotrowski
ade997688a
Merge branch 'awaitable' into v2
2016-07-18 23:20:05 -05:00
Aaron Piotrowski
3f654cbd5b
Initial tests plus some fixes
2016-07-12 11:20:06 -05:00
Bob Weinand
3603d5b1ec
EvLoop::enabled() -> supported()
2016-06-26 17:35:25 +02:00
Aaron Piotrowski
33338324d4
Add UvLoop
2016-06-09 12:57:46 -05:00
Aaron Piotrowski
666cc42a5f
Better ref/unref in EvLoop; fix EvLoopTest
2016-06-08 16:03:37 -05:00
Aaron Piotrowski
a49d333f1b
Add EvLoop; Split shared components into Loop
2016-06-08 09:22:14 -05:00
Aaron Piotrowski
ae441eb179
Fix DummyDriver
...
Conflict due to merge of #68
2016-05-31 10:08:10 -05:00
Aaron Piotrowski
5a82cd9b6b
Merge pull request #67 from async-interop/defer-callback
...
Put Loop::execute() $callback into Driver::defer()
2016-05-31 10:00:11 -05:00
Aaron Piotrowski
4aa8c5d550
Add loop tests
2016-05-27 15:07:05 -05:00
Aaron Piotrowski
237a9c45ad
Update registry test
2016-05-27 11:38:19 -05:00
Bob Weinand
b197b2c07d
Put Loop::execute() $callback into Driver::defer()
...
This also ensures that potential throwing in the callback will be handled inside a potential error handler instead of immediately falling through.
2016-05-26 23:45:27 +02:00
Aaron Piotrowski
7a2c5cdc88
Cleanup namespace
2016-05-26 10:05:17 -05:00
Niklas Keller
47edee535d
Forbid new factories while running, add scope test
2016-05-25 13:55:36 +02:00
Niklas Keller
3992374209
Apply ugly FIG braces style
2016-05-16 11:33:58 +02:00
Niklas Keller
8b3555c552
Change namespace of Registry
2016-05-16 11:02:14 +02:00
Niklas Keller
679651b242
Refactor Registry into a trait, so it can be tested separately
2016-05-16 11:02:13 +02:00
Chris Wright
6f4433dd1c
Add tests for resolve callables
2016-05-11 18:07:58 +01:00
Niklas Keller
7046ca47e1
Expose combined exceptions in combinator exception
...
Also fix indent, escape sequences and docs
2016-03-09 14:09:15 +01:00
Bob Weinand
4b667478f4
Fixed bug causing NativeReactor to run at 100% CPU
...
See also https://github.com/amphp/aerys/issues/68
2016-02-22 23:17:50 +01:00
Bob Weinand
72683085c5
Fix signal tests for when pcntl isn't loaded, but UvReactor is
2015-11-16 14:53:19 +01:00
Bob Weinand
3057329a5c
Update tests for CombinatorException, prepare tag 1.0.5
2015-09-30 14:31:53 +02:00
Daniel Lowrey
5cad406795
Normalize coroutine() return to Promise type
2015-08-07 11:01:36 -04:00
Daniel Lowrey
e209ee189d
Don't unload watchers when the run loop finishes
2015-08-05 13:13:16 -04:00
Daniel Lowrey
70f4971ae1
Remove stream() in favor of PromiseStream
2015-08-04 23:46:49 -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
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
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