Bob Weinand
e089d8e267
Add line break to prevent overlong line
2016-06-26 17:19:54 +02:00
Bob Weinand
d6c299a448
Update according to latest spec changes + better signal tests
2016-06-26 17:12:33 +02:00
Aaron Piotrowski
8c9efe42aa
Undefined callback order ( #80 )
2016-06-26 16:15:01 +02:00
Aaron Piotrowski
2a1fde0b44
Add automatic loop factory bootstrap
2016-06-23 23:37:06 -05:00
Aaron Piotrowski
b0435d221f
Merge pull request #78 from async-interop/watcher-activation
...
Specify when exactly a watchers callbacks may start to be called
2016-06-21 14:02:28 -05:00
Aaron Piotrowski
4ed8e65468
Cleaner resolution
2016-06-16 23:27:14 -05:00
Aaron Piotrowski
92767755ee
Avoid loosing exception thrown from generator after invalid yield
2016-06-16 22:44:32 -05:00
Aaron Piotrowski
f553e4f08b
Improve coroutine continuation
...
Duplicated some code for faster coroutine continuation.
2016-06-14 23:26:59 -05:00
Aaron Piotrowski
ae182165e5
Remove circular reference check
2016-06-14 21:53:50 -05:00
Aaron Piotrowski
60d560d70e
Add $className param to capture(); other cleanup
2016-06-14 21:40:04 -05:00
Aaron Piotrowski
986b69907f
No need to call keepalive within EvLoop
...
Loop class handles the details necessary to stop the loop if no reference watchers exist.
2016-06-09 12:59:18 -05: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
543d1c5e66
Fix repeat timer interval
2016-06-08 12:08:00 -05:00
Aaron Piotrowski
a49d333f1b
Add EvLoop; Split shared components into Loop
2016-06-08 09:22:14 -05:00
Aaron Piotrowski
757778c848
Fix check if signal was disabled
...
Plus some minor tweaks
2016-06-08 00:15:36 -05:00
Bob Weinand
7b30e788bb
Specify when exactly a watchers callbacks may start to be called
...
Delaying activation of watchers to the next tick guarantees consistent behavior between all implementations.
Additionally it eliminates the following problem:
- Two defer()'s are set up with the first one immediately disabled
- Second defer()'s callback is called and enables the first defer()'s watcher
- Executes defer() in same tick or next tick?
If the answer is same tick, what happens in the following scenario:
- An immediately disabled defer() and a delay($msDelay = 0) are set up
- The delay()'s callback enables the defer()'s watcher
- Executes defer() callback in same tick or next tick?
Doing it in same tick violates the requirement that defers are called before any other watchers in the same tick.
We get similar problems with e.g. delay() and repeat() (if their timer all expired now, but we require order to be preserved).
Thus we need to pretty much delay the activation of enable() to the next tick to avoid potential ambiguity or different behaviors depending on when exactly the enable() or watcher registration happened.
2016-06-07 21:17:27 +02:00
Aaron Piotrowski
d50de887a2
Fix onSignal porition of testNoMemoryLeak
2016-06-07 13:21:10 -05:00
Bob Weinand
e912117f8d
Reduce number of runs for memory test
2016-06-07 19:47:08 +02:00
Aaron Piotrowski
8e31310921
Fix repeat timer memory leak
2016-06-07 12:40:35 -05:00
Aaron Piotrowski
6fd7fe5b11
Call posix_kill() in defer for better consistency
...
Using a short delay was sometimes not long enough to ensure that $sig2 was actually enabled before the signal was sent. Using a defer after enabling pushes the call to posix_kill() to the next tick.
2016-06-07 12:31:49 -05:00
Aaron Piotrowski
8c2063157b
Fix testEventsNotExecutedInSameTickAsEnabled
2016-06-07 12:25:59 -05:00
Aaron Piotrowski
93424c1c6e
Enable events in next tick
2016-06-07 12:24:53 -05:00
Aaron Piotrowski
f940934a0b
Update for latest standard changes
...
Plus some minor tweaks and more docs.
2016-06-07 00:18:59 -05:00
Aaron Piotrowski
cd0a03c0b2
Fix exception name / warning
2016-06-07 00:08:55 -05:00
Bob Weinand
085afe050e
Add registry, execution order tests and InvalidWatcherException handling
2016-06-07 01:53:28 +02:00
Bob Weinand
1e584697b3
Be a little more specific about enable/definition
...
Enable is when things get put back to the queue, hence that order shall be respected. Otherwise we get undefined behaviors when disabling deferreds which have yet to be executed and re-enabling them after the point they should have been executed.
2016-06-07 01:44:28 +02:00
Andrew Carter
ccb2180184
Clarified that cancel() can be used to prevent a memory leak ( #75 )
2016-06-06 22:37:17 +02:00
Aaron Piotrowski
289b0fe603
Merge pull request #74 from async-interop/calltime_guarantees
...
Specify exact guarantees when a callback has to be called
2016-06-05 22:45:14 -05:00
Aaron Piotrowski
c05ba0daa9
Merge pull request #72 from async-interop/invalid-watcher-handling
...
(Re-)Introduce InvalidWatcherException
2016-06-05 22:44:42 -05:00
Aaron Piotrowski
d29e175189
Merge pull request #71 from async-interop/defer-delay-invalidation-note
...
Add the invalidation note on defer/delay
2016-06-05 22:44:20 -05:00
Bob Weinand
cf012501a2
Specify exact guarantees when a callback has to be called
...
This prevents unexpected failures due to different execution orders in different implementations.
2016-06-04 20:28:25 +02:00
Bob Weinand
c9af067b46
Fix delays/intervals being able equal to zero
2016-06-04 00:10:47 +02:00
Bob Weinand
cca8008cba
Fix memory leak test
...
Add check for signal test
2016-06-04 00:07:16 +02:00
Aaron Piotrowski
6a9ec4ea9f
PSR-2: tabs -> spaces
2016-06-03 10:01:21 -05:00
Aaron Piotrowski
666bb332e1
Fix some bugs, refactor disable/unreference
2016-06-03 10:00:29 -05:00
Aaron Piotrowski
ffe714f1ef
Fix some tests; PSR-2 function definitions
2016-06-03 00:49:47 -05:00
Aaron Piotrowski
808ce32e3c
Fix leftover mentions of Disposable
2016-06-02 17:11:25 -05:00
Aaron Piotrowski
548a9fd556
Fix bug when emitting failed awaitable and waiting for a subscriber
2016-06-02 17:05:22 -05:00
Bob Weinand
f6c6f41adf
(Re-)Introduce InvalidWatcherException
...
Fixes #58
2016-06-02 21:56:36 +02:00
Bob Weinand
7cd03f3927
The watcher id must be invalidated before defer and delay callback calls
...
Fixes #70 .
2016-06-02 19:15:52 +02:00
Aaron Piotrowski
7fb57141d2
Cleanup yielded value handling
2016-06-02 10:46:22 -05:00
Aaron Piotrowski
5715bec9e1
Refactor functions with Emitter
2016-06-02 10:43:46 -05:00
Aaron Piotrowski
cef5c90168
Drop disposable interface; rename dispose() to unsubscribe()
2016-06-02 10:42:22 -05:00
Aaron Piotrowski
acbe2c8237
Add Registry; support streams with multiple watchers
2016-06-02 09:45:04 -05:00
Aaron Piotrowski
055d7d4c52
Update docblocks
2016-06-01 12:18:11 -05:00
Aaron Piotrowski
cd6939db5a
Build awaitable in when()
2016-06-01 12:10:46 -05:00
Aaron Piotrowski
b705c144c6
Minor tweaks
2016-06-01 12:06:43 -05:00
Aaron Piotrowski
906d6db47a
Update docblocks
2016-06-01 11:37:12 -05:00
Aaron Piotrowski
c4e9a19095
Rename Emitter to Producer; add new Emitter class
...
Emitter uses a coroutine to emit values. Updated examples.
2016-06-01 11:19:19 -05:00