1
0
mirror of https://github.com/danog/amp.git synced 2024-11-27 04:24:42 +01:00
Commit Graph

514 Commits

Author SHA1 Message Date
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
e9d48a68d5 Rename createRunnable to asyncCoroutine and createCallable to coroutine 2017-04-24 15:27:04 +02:00
Niklas Keller
dc21d094c5 Throw error in case the loop throws during wait 2017-04-24 15:27:04 +02:00
Niklas Keller
e1c63c62f4 Minor documentation changes 2017-04-24 15:27:04 +02:00
Niklas Keller
65a37484a2 Replace UnionTypeError with factory function + minor doc changes 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
4f8b656513 Document wrap and coroutine better by explicitly naming the differences 2017-04-24 15:27:04 +02:00
Aaron Piotrowski
a562d6b20f Use same poll for read and write watchers
Changed values of Watcher constants to match UV constants because it was easier that way. :-D
2017-04-21 10:54:53 -05:00
Aaron Piotrowski
fdeb427717 Use simple assignment if queue is empty
The common case is for the queue to be empty at the start of the tick, so a call to array_merge() can be avoided in most cases.
2017-04-20 11:26:13 -05:00
Aaron Piotrowski
628d8cbab1 Set next "now" at the beginning of watcher activation 2017-04-20 11:13:17 -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
Aaron Piotrowski
89570e8f6d Move Watcher to Loop namespace 2017-04-18 09:38:16 -05:00
Ciaran Kelly
0e4d4b492e Add missing namespace declarations 2017-04-15 23:16:50 +01: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
fed09e42ac Fix line lengths 2017-04-13 18:49:32 +02:00
Niklas Keller
5e545301cd Rename Listener to StreamIterator 2017-04-13 18:20:46 +02:00
Niklas Keller
3a42254300 Make Watcher implement Struct 2017-04-13 18:05:59 +02:00
Niklas Keller
3e8b37f21f Remove Amp\Stream\interval and add delay option to fromIterable 2017-04-13 18:05:41 +02:00
Niklas Keller
b810ff1034 Use eval to prevent multiple definitions warnings for Emitter and Deferred 2017-04-13 18:04:51 +02:00
Aaron Piotrowski
a0b8de40fb Null deferred refs 2017-04-07 12:50:01 -05:00
Bob Weinand
f100d9cd8b Fix possible double resolutions 2017-04-07 18:47:44 +02:00
Bob Weinand
c52279065d Remove unnecessary use of temporary variables 2017-04-07 18:09:39 +02:00
Aaron Piotrowski
e43f9afc8f Refactor functions to remove circular refs
This will provide for faster garbage collection of unused promises/deferreds/etc.
2017-04-07 10:51:57 -05:00
Aaron Piotrowski
97dd8d933e Forward UV error to loop error handler and disable watchers 2017-04-06 11:18:33 -05:00
Aaron Piotrowski
d01ee68dd2 Null circular reference on resolution 2017-04-06 09:24:21 -05: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
Niklas Keller
8caae2253f Allow recording stacktraces to debug double resolution 2017-03-29 17:25:44 +02: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
c464e070e4 s/fail/succeed 2017-03-26 12:53:26 -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
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
Niklas Keller
a954f73d8e Update namespacing to be compatible with what's actually used 2017-03-18 21:52:23 +01:00
Aaron Piotrowski
39b95255d2 Reduce code duplication in Coroutine
Hot path is still duplicated for performance, but conversion of non-promise values to promises should be a single method.
2017-03-15 19:10:23 -05:00
Aaron Piotrowski
86b494a5c4 Throw Error if registering signal handler fails 2017-03-15 19:08:00 -05: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
01c58ae90e Fix EvDriver with throwing onSignal callback 2017-03-15 08:33:04 +01:00
Niklas Keller
73149b933f Ignore DriverFactory for code coverage 2017-03-14 22:33:45 +01:00
Aaron Piotrowski
6b9ec609c1 Add UnionTypeError 2017-03-14 13:15:31 -05:00
Aaron Piotrowski
44c5a1b1dc Cleanup React promise adaption 2017-03-14 13:15:31 -05:00
Niklas Keller
e92bd57030 Remove outdated @throws RuntimeException 2017-03-14 19:05:38 +01:00
Niklas Keller
c13e8e3a66 Use Error instead of InvalidArgumentException, remove test file 2017-03-14 18:44:44 +01:00
Niklas Keller
ee11b70395 Fix remaining InvalidWatcherError renames 2017-03-14 18:24:14 +01:00
Aaron Piotrowski
1dadd4f0da InvalidWatcherException → InvalidWatcherError 2017-03-14 11:48:27 -05:00