Skip to content

Commit e74af4d

Browse files
committed
#48: rename CancellationException => CancellationError
1 parent 5d7445e commit e74af4d

37 files changed

+214
-390
lines changed

async.stub.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ function getCoroutines(): array {}
8282
/**
8383
* Start the graceful shutdown of the Scheduler.
8484
*/
85-
function gracefulShutdown(?CancellationException $cancellationException = null): void {}
85+
function gracefulShutdown(?CancellationError $cancellationError = null): void {}
8686

8787
/**
8888
* Execute an external program.

async_arginfo.h

Lines changed: 54 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,70 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash: d217fc8dbb5aa518add60c4d99d3e7a356fbd41f */
2+
* Stub hash: aca45cee02a4df47e8e1bc3c2517e6925bd522a9 */
33

44
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_Async_spawn, 0, 1, Async\\Coroutine, 0)
5-
ZEND_ARG_TYPE_INFO(0, task, IS_CALLABLE, 0)
6-
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
5+
ZEND_ARG_TYPE_INFO(0, task, IS_CALLABLE, 0)
6+
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
77
ZEND_END_ARG_INFO()
88

99
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_Async_spawnWith, 0, 2, Async\\Coroutine, 0)
10-
ZEND_ARG_OBJ_INFO(0, provider, Async\\ScopeProvider, 0)
11-
ZEND_ARG_TYPE_INFO(0, task, IS_CALLABLE, 0)
12-
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
10+
ZEND_ARG_OBJ_INFO(0, provider, Async\\ScopeProvider, 0)
11+
ZEND_ARG_TYPE_INFO(0, task, IS_CALLABLE, 0)
12+
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
1313
ZEND_END_ARG_INFO()
1414

1515
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_suspend, 0, 0, IS_VOID, 0)
1616
ZEND_END_ARG_INFO()
1717

1818
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_protect, 0, 1, IS_MIXED, 0)
19-
ZEND_ARG_OBJ_INFO(0, closure, Closure, 0)
19+
ZEND_ARG_OBJ_INFO(0, closure, Closure, 0)
2020
ZEND_END_ARG_INFO()
2121

2222
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_await, 0, 1, IS_MIXED, 0)
23-
ZEND_ARG_OBJ_INFO(0, awaitable, Async\\Awaitable, 0)
24-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
23+
ZEND_ARG_OBJ_INFO(0, awaitable, Async\\Awaitable, 0)
24+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
2525
ZEND_END_ARG_INFO()
2626

2727
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_awaitAnyOrFail, 0, 1, IS_MIXED, 0)
28-
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
29-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
28+
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
29+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
3030
ZEND_END_ARG_INFO()
3131

3232
#define arginfo_Async_awaitFirstSuccess arginfo_Async_awaitAnyOrFail
3333

3434
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_awaitAllOrFail, 0, 1, IS_ARRAY, 0)
35-
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
36-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
37-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
35+
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
36+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
37+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
3838
ZEND_END_ARG_INFO()
3939

4040
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_awaitAll, 0, 1, IS_ARRAY, 0)
41-
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
42-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
43-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
44-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fillNull, _IS_BOOL, 0, "false")
41+
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
42+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
43+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
44+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fillNull, _IS_BOOL, 0, "false")
4545
ZEND_END_ARG_INFO()
4646

4747
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_awaitAnyOfOrFail, 0, 2, IS_ARRAY, 0)
48-
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
49-
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
50-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
51-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
48+
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
49+
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
50+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
51+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
5252
ZEND_END_ARG_INFO()
5353

5454
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_awaitAnyOf, 0, 2, IS_ARRAY, 0)
55-
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
56-
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
57-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
58-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
59-
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fillNull, _IS_BOOL, 0, "false")
55+
ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
56+
ZEND_ARG_OBJ_TYPE_MASK(0, triggers, Traversable, MAY_BE_ARRAY, NULL)
57+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellation, Async\\Awaitable, 1, "null")
58+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, preserveKeyOrder, _IS_BOOL, 0, "true")
59+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fillNull, _IS_BOOL, 0, "false")
6060
ZEND_END_ARG_INFO()
6161

6262
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_delay, 0, 1, IS_VOID, 0)
63-
ZEND_ARG_TYPE_INFO(0, ms, IS_LONG, 0)
63+
ZEND_ARG_TYPE_INFO(0, ms, IS_LONG, 0)
6464
ZEND_END_ARG_INFO()
6565

6666
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_Async_timeout, 0, 1, Async\\Awaitable, 0)
67-
ZEND_ARG_TYPE_INFO(0, ms, IS_LONG, 0)
67+
ZEND_ARG_TYPE_INFO(0, ms, IS_LONG, 0)
6868
ZEND_END_ARG_INFO()
6969

7070
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_Async_currentContext, 0, 0, Async\\Context, 0)
@@ -81,7 +81,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_getCoroutines, 0, 0, IS_AR
8181
ZEND_END_ARG_INFO()
8282

8383
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_Async_gracefulShutdown, 0, 0, IS_VOID, 0)
84-
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellationException, Async\\CancellationException, 1, "null")
84+
ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, cancellationError, Async\\CancellationError, 1, "null")
8585
ZEND_END_ARG_INFO()
8686

8787
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Async_Timeout___construct, 0, 0, 0)
@@ -109,112 +109,32 @@ ZEND_FUNCTION(Async_gracefulShutdown);
109109
ZEND_METHOD(Async_Timeout, __construct);
110110

111111
static const zend_function_entry ext_functions[] = {
112-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "spawn"),
113-
zif_Async_spawn,
114-
arginfo_Async_spawn,
115-
0,
116-
NULL,
117-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "spawnWith"),
118-
zif_Async_spawnWith,
119-
arginfo_Async_spawnWith,
120-
0,
121-
NULL,
122-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "suspend"),
123-
zif_Async_suspend,
124-
arginfo_Async_suspend,
125-
0,
126-
NULL,
127-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "protect"),
128-
zif_Async_protect,
129-
arginfo_Async_protect,
130-
0,
131-
NULL,
132-
NULL)
133-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "await"), zif_Async_await, arginfo_Async_await, 0, NULL, NULL)
134-
ZEND_RAW_FENTRY(
135-
ZEND_NS_NAME("Async", "awaitAnyOrFail"),
136-
zif_Async_awaitAnyOrFail,
137-
arginfo_Async_awaitAnyOrFail,
138-
0,
139-
NULL,
140-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitFirstSuccess"),
141-
zif_Async_awaitFirstSuccess,
142-
arginfo_Async_awaitFirstSuccess,
143-
0,
144-
NULL,
145-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAllOrFail"),
146-
zif_Async_awaitAllOrFail,
147-
arginfo_Async_awaitAllOrFail,
148-
0,
149-
NULL,
150-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async",
151-
"awaitAll"),
152-
zif_Async_awaitAll,
153-
arginfo_Async_awaitAll,
154-
0,
155-
NULL,
156-
NULL)
157-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAnyOfOrFail"),
158-
zif_Async_awaitAnyOfOrFail,
159-
arginfo_Async_awaitAnyOfOrFail,
160-
0,
161-
NULL,
162-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAnyOf"),
163-
zif_Async_awaitAnyOf,
164-
arginfo_Async_awaitAnyOf,
165-
0,
166-
NULL,
167-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "delay"),
168-
zif_Async_delay,
169-
arginfo_Async_delay,
170-
0,
171-
NULL,
172-
NULL)
173-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "timeout"),
174-
zif_Async_timeout,
175-
arginfo_Async_timeout,
176-
0,
177-
NULL,
178-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "currentContext"),
179-
zif_Async_currentContext,
180-
arginfo_Async_currentContext,
181-
0,
182-
NULL,
183-
NULL)
184-
ZEND_RAW_FENTRY(
185-
ZEND_NS_NAME("Async", "coroutineContext"),
186-
zif_Async_coroutineContext,
187-
arginfo_Async_coroutineContext,
188-
0,
189-
NULL,
190-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "currentCoroutine"),
191-
zif_Async_currentCoroutine,
192-
arginfo_Async_currentCoroutine,
193-
0,
194-
NULL,
195-
NULL)
196-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "rootContext"),
197-
zif_Async_rootContext,
198-
arginfo_Async_rootContext,
199-
0,
200-
NULL,
201-
NULL) ZEND_RAW_FENTRY(ZEND_NS_NAME("Async",
202-
"getCoroutines"),
203-
zif_Async_getCoroutines,
204-
arginfo_Async_getCoroutines,
205-
0,
206-
NULL,
207-
NULL)
208-
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "gracefulShutdown"),
209-
zif_Async_gracefulShutdown,
210-
arginfo_Async_gracefulShutdown,
211-
0,
212-
NULL,
213-
NULL) ZEND_FE_END
112+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "spawn"), zif_Async_spawn, arginfo_Async_spawn, 0, NULL, NULL)
113+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "spawnWith"), zif_Async_spawnWith, arginfo_Async_spawnWith, 0, NULL, NULL)
114+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "suspend"), zif_Async_suspend, arginfo_Async_suspend, 0, NULL, NULL)
115+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "protect"), zif_Async_protect, arginfo_Async_protect, 0, NULL, NULL)
116+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "await"), zif_Async_await, arginfo_Async_await, 0, NULL, NULL)
117+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAnyOrFail"), zif_Async_awaitAnyOrFail, arginfo_Async_awaitAnyOrFail, 0, NULL, NULL)
118+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitFirstSuccess"), zif_Async_awaitFirstSuccess, arginfo_Async_awaitFirstSuccess, 0, NULL, NULL)
119+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAllOrFail"), zif_Async_awaitAllOrFail, arginfo_Async_awaitAllOrFail, 0, NULL, NULL)
120+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAll"), zif_Async_awaitAll, arginfo_Async_awaitAll, 0, NULL, NULL)
121+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAnyOfOrFail"), zif_Async_awaitAnyOfOrFail, arginfo_Async_awaitAnyOfOrFail, 0, NULL, NULL)
122+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "awaitAnyOf"), zif_Async_awaitAnyOf, arginfo_Async_awaitAnyOf, 0, NULL, NULL)
123+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "delay"), zif_Async_delay, arginfo_Async_delay, 0, NULL, NULL)
124+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "timeout"), zif_Async_timeout, arginfo_Async_timeout, 0, NULL, NULL)
125+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "currentContext"), zif_Async_currentContext, arginfo_Async_currentContext, 0, NULL, NULL)
126+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "coroutineContext"), zif_Async_coroutineContext, arginfo_Async_coroutineContext, 0, NULL, NULL)
127+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "currentCoroutine"), zif_Async_currentCoroutine, arginfo_Async_currentCoroutine, 0, NULL, NULL)
128+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "rootContext"), zif_Async_rootContext, arginfo_Async_rootContext, 0, NULL, NULL)
129+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "getCoroutines"), zif_Async_getCoroutines, arginfo_Async_getCoroutines, 0, NULL, NULL)
130+
ZEND_RAW_FENTRY(ZEND_NS_NAME("Async", "gracefulShutdown"), zif_Async_gracefulShutdown, arginfo_Async_gracefulShutdown, 0, NULL, NULL)
131+
ZEND_FE_END
214132
};
215133

216-
static const zend_function_entry class_Async_Timeout_methods[] = { ZEND_ME(
217-
Async_Timeout, __construct, arginfo_class_Async_Timeout___construct, ZEND_ACC_PRIVATE) ZEND_FE_END };
134+
static const zend_function_entry class_Async_Timeout_methods[] = {
135+
ZEND_ME(Async_Timeout, __construct, arginfo_class_Async_Timeout___construct, ZEND_ACC_PRIVATE)
136+
ZEND_FE_END
137+
};
218138

219139
static zend_class_entry *register_class_Async_Awaitable(void)
220140
{

coroutine.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,11 @@ METHOD(cancel)
255255
{
256256
zend_object *exception = NULL;
257257

258+
zend_class_entry *ce_cancellation_exception = ZEND_ASYNC_GET_CE(ZEND_ASYNC_EXCEPTION_CANCELLATION);
259+
258260
ZEND_PARSE_PARAMETERS_START(0, 1)
259261
Z_PARAM_OPTIONAL;
260-
Z_PARAM_OBJ_OF_CLASS_OR_NULL(exception, zend_ce_cancellation_exception)
262+
Z_PARAM_OBJ_OF_CLASS_OR_NULL(exception, ce_cancellation_exception)
261263
ZEND_PARSE_PARAMETERS_END();
262264

263265
ZEND_ASYNC_CANCEL(&THIS_COROUTINE->coroutine, exception, false);
@@ -566,7 +568,7 @@ void async_coroutine_finalize(zend_fiber_transfer *transfer, async_coroutine_t *
566568
// Hold the exception inside coroutine if it is not NULL.
567569
if (exception != NULL) {
568570
if (coroutine->coroutine.exception != NULL) {
569-
if (false == instanceof_function(exception->ce, zend_ce_cancellation_exception)) {
571+
if (false == instanceof_function(exception->ce, ZEND_ASYNC_GET_CE(ZEND_ASYNC_EXCEPTION_CANCELLATION))) {
570572
zend_exception_set_previous(exception, coroutine->coroutine.exception);
571573
coroutine->coroutine.exception = exception;
572574
GC_ADDREF(exception);
@@ -611,7 +613,7 @@ void async_coroutine_finalize(zend_fiber_transfer *transfer, async_coroutine_t *
611613
// Cancellation-type exceptions are considered handled in all cases and are not propagated further.
612614
if (exception != NULL &&
613615
(ZEND_COROUTINE_IS_EXCEPTION_HANDLED(&coroutine->coroutine) ||
614-
instanceof_function(exception->ce, zend_ce_cancellation_exception))) {
616+
instanceof_function(exception->ce, ZEND_ASYNC_GET_CE(ZEND_ASYNC_EXCEPTION_CANCELLATION)))) {
615617
OBJ_RELEASE(exception);
616618
exception = NULL;
617619
}
@@ -968,7 +970,7 @@ void async_coroutine_resume(zend_coroutine_t *coroutine, zend_object *error, con
968970
if (error != NULL) {
969971
if (coroutine->waker->error != NULL) {
970972

971-
if (false == instanceof_function(error->ce, zend_ce_cancellation_exception)) {
973+
if (false == instanceof_function(error->ce, ZEND_ASYNC_GET_CE(ZEND_ASYNC_EXCEPTION_CANCELLATION))) {
972974
zend_exception_set_previous(error, coroutine->waker->error);
973975
coroutine->waker->error = error;
974976

@@ -1123,7 +1125,7 @@ void async_coroutine_cancel(zend_coroutine_t *zend_coroutine,
11231125
}
11241126

11251127
if (was_cancelled && waker->error != NULL &&
1126-
instanceof_function(waker->error->ce, zend_ce_cancellation_exception)) {
1128+
instanceof_function(waker->error->ce, ZEND_ASYNC_GET_CE(ZEND_ASYNC_EXCEPTION_CANCELLATION))) {
11271129
if (transfer_error) {
11281130
OBJ_RELEASE(error);
11291131
}

coroutine.stub.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function getResult(): mixed {}
3434
/**
3535
* Returns the Coroutine exception when finished.
3636
* If the Coroutine is not finished, it will return null.
37-
* If the Coroutine is cancelled, it will return a CancellationException.
37+
* If the Coroutine is cancelled, it will return a CancellationError.
3838
*
3939
* @throws \RuntimeException if the Coroutine is running
4040
*/
@@ -105,7 +105,7 @@ public function getAwaitingInfo(): array {}
105105
/**
106106
* Cancel the coroutine.
107107
*/
108-
public function cancel(?\CancellationException $cancellationException = null): void {}
108+
public function cancel(?CancellationError $CancellationError = null): void {}
109109

110110
/**
111111
* Define a callback to be executed when the coroutine is finished.

0 commit comments

Comments
 (0)