Bob Weinand
9a2d30c3c0
Merge pull request #127 from async-interop/spec
...
Change proposal to specification
2016-12-31 21:15:09 +01:00
Niklas Keller
07246e1d0d
Change proposal to specification
2016-12-31 19:50:39 +01:00
Cees-Jan Kiewiet
0ede4e89a4
Merge pull request #123 from async-interop/weak-types
...
Add note about weak type requirement
2016-12-29 16:41:03 +01:00
Niklas Keller
26173a63e6
Add note about weak type requirement
2016-12-28 14:18:14 +01:00
Bob Weinand
21683eeb26
Merge pull request #120 from async-interop/loop-info
...
Rename Loop::info to Loop::getInfo
2016-12-23 11:25:07 +01:00
Niklas Keller
5eeb96ab80
Add missing return description to Loop::getInfo
2016-12-23 11:05:37 +01: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
db1661be6a
Merge pull request #118 from async-interop/return_old_error_handler
...
Loop::setErrorHandler should return the last error handler
2016-12-22 11:38:10 -06:00
Bob Weinand
44fd40af93
Loop::setErrorHandler should return the last error handler
2016-12-22 17:50:25 +01:00
Bob Weinand
50fd5e3bf2
Merge pull request #116 from async-interop/packages
...
Add implementations and compatible projects to README
2016-12-22 13:15:58 +01:00
Niklas Keller
438ce0b892
Add implementations and compatible projects to README
...
Closes #105 .
2016-12-18 12:31:02 +01:00
Cees-Jan Kiewiet
9433870361
Merge pull request #114 from async-interop/parallel-lint
...
Use parallel-lint for linting
2016-12-05 19:39:10 +01:00
Niklas Keller
5f3086ba95
Use parallel-lint for linting
2016-12-05 13:46:17 +01:00
Cees-Jan Kiewiet
0909e60392
Merge pull request #111 from async-interop/invalid-watcher-exception
...
Add InvalidWatcherException::getWatcherId
2016-12-05 13:40:06 +01:00
Bob Weinand
871f4efe26
Merge branch 'master' into invalid-watcher-exception
2016-11-14 17:58:43 +01:00
Bob Weinand
ef913fcfbb
Merge pull request #112 from async-interop/consistent-docs
...
Make driver and loop docs consistent
2016-11-14 17:58:06 +01:00
Niklas Keller
aa07fb1455
Make driver and loop docs consistent
2016-11-06 21:50:31 +01:00
Niklas Keller
f41eb23a8d
Add InvalidWatcherException::getWatcherId
...
Resolves #98 . I guess this exception should only be thrown if the passed watcher
identifier is a string. If a wrong type is passed, some other exception should be thrown.
2016-11-06 18:38:20 +01:00
Bob Weinand
aef839e4ae
Merge pull request #109 from async-interop/issue-106
...
Add warning about locally closed resources being undefined behavior
2016-10-25 18:27:10 +02:00
Niklas Keller
9916529f3c
'may' → 'MAY', copy docs for defer, delay, repeat from Driver to Loop
2016-10-25 17:35:21 +02:00
Niklas Keller
5d9de0c060
Fix typo, remove debug mode hint
2016-10-25 17:35:21 +02:00
Niklas Keller
c1a4d9346d
Add warning about locally closed resources being undefined behavior
...
Also makes Loop docs consistent with Driver. Resolves #106 .
2016-10-25 17:35:21 +02:00
Bob Weinand
11c04e9efe
Merge pull request #110 from async-interop/issue-95
...
Define error handler behavior
2016-10-25 10:56:32 +02:00
Niklas Keller
27e7f2a05b
Define error handler behavior
...
Resolves #95 .
2016-10-24 20:43:21 +02:00
Niklas Keller
0581b38146
Merge pull request #108 from joelwurtz/patch-1
...
Missing return type
2016-10-11 00:13:28 +02:00
Joel Wurtz
728d468432
Missing return type
2016-10-10 10:54:27 +02:00
Bob Weinand
98106455a1
Merge pull request #103 from async-interop/docs-formatting
...
Documentation formatting
2016-09-29 10:32:24 +02:00
Niklas Keller
77764d5b89
Format docs, change LogicException to Exception
2016-09-25 13:22:01 +02:00
Niklas Keller
876ca66876
Fix code markdown for Loop::info
2016-09-24 21:51:31 +02:00
Niklas Keller
32441396c5
Merge pull request #100 from async-interop/clarify_readable_writable_closed
...
Clarify that (half-)closed streams also trigger the respective read and write watchers
2016-09-24 21:11:17 +02:00
Bob Weinand
74ff6a4be1
Clarify that (half-)closed streams also trigger the respective read and write watchers
2016-09-23 16:02:23 +02:00
Niklas Keller
3791a7536a
Add missing documentation
2016-09-22 09:15:45 +02:00
Bob Weinand
a31f5188cc
Merge pull request #97 from async-interop/issue-93
...
Change exception base classes to Exception
2016-09-21 21:29:32 +02:00
Niklas Keller
3228677953
Change exception base classes to Exception
...
Resolves #93 .
2016-09-21 18:05:59 +02:00
Aaron Piotrowski
9ab9e6a6bb
Merge pull request #91 from async-interop/disabling_invalid_watcher
...
Allow disabling of invalid watchers
2016-08-30 15:35:31 -05:00
Bob Weinand
b3fdfa4ede
Fixed #90 - allow disabling of invalid watchers
2016-08-30 22:04:21 +02:00
Bob Weinand
dff456ce83
Merge pull request #89 from async-interop/state
...
Rename fetch/storeState to get/setState
2016-08-10 12:18:56 +01:00
Niklas Keller
74e2577b25
Rename fetch/storeState to get/setState
2016-08-06 14:49:08 +02:00
Cees-Jan Kiewiet
4bdc40e9c1
Merge pull request #87 from async-interop/driver-registry-merge
...
Merge Registry into Driver
2016-08-06 14:31:44 +02:00
Niklas Keller
8ece6be6cf
Make final PSR-2 compatible
2016-08-05 14:11:59 +02:00
Niklas Keller
39b7ddd366
Make abstract PSR-2 compatible
2016-08-05 13:56:26 +02:00
Niklas Keller
6cde9f5495
Merge Registry into Driver
2016-08-04 21:08:52 +02:00
Cees-Jan Kiewiet
6b1da28fb8
Merge pull request #84 from async-interop/signal_handlers_in_different_loops
...
Add a warning/implementation note about installing handlers for a same signal on different loops
2016-07-30 20:50:01 +02:00
Bob Weinand
9f3f6b9523
Add a warning/implementation note about installing handlers for a same signal on different loops
...
This needs to be undefined behavior as we do not have the possibilities in PHP (i.e. the language and functions don't give us the power) to distinguish properly whether a signal is already installed or not
Also, when we try to set a handler for a signal we've already installed a signal elsewhere, the second onSignal() call will lead implementations to override the original handler (on the system level, with signal()/sigaction())
Ultimately some extensions just flat out emit a warning in that case (e.g. libev).
Thus, we cannot control what happens and hence this needs to be specified as undefined behavior.
2016-07-19 18:10:51 +02:00
Niklas Keller
8f38808ddb
Fix line lengths, resolves #76 ( #81 )
2016-07-15 22:17:24 +02:00
Bob Weinand
e089d8e267
Add line break to prevent overlong line
2016-06-26 17:19:54 +02:00
Aaron Piotrowski
8c9efe42aa
Undefined callback order ( #80 )
2016-06-26 16:15:01 +02: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
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
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