@@ -413,18 +413,6 @@ static void zend_fiber_object_free(zend_object *object)
413
413
zend_object_std_dtor (& fiber -> std );
414
414
}
415
415
416
- ZEND_API zend_fiber * zend_fiber_create (const zend_fcall_info * fci , const zend_fcall_info_cache * fci_cache )
417
- {
418
- zend_fiber * fiber = (zend_fiber * ) zend_fiber_object_create (zend_ce_fiber );
419
-
420
- fiber -> fci = * fci ;
421
- fiber -> fci_cache = * fci_cache ;
422
-
423
- Z_TRY_ADDREF (fiber -> fci .function_name );
424
-
425
- return fiber ;
426
- }
427
-
428
416
ZEND_METHOD (Fiber , __construct )
429
417
{
430
418
zend_fiber * fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
@@ -437,9 +425,16 @@ ZEND_METHOD(Fiber, __construct)
437
425
Z_TRY_ADDREF (fiber -> fci .function_name );
438
426
}
439
427
440
- ZEND_API void zend_fiber_start ( zend_fiber * fiber , zval * params , uint32_t param_count , zend_array * named_params , zval * return_value )
428
+ ZEND_METHOD ( Fiber , start )
441
429
{
442
- zend_fiber_context * context = zend_fiber_get_context (fiber );
430
+ zend_fiber * fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
431
+ zval * params ;
432
+ uint32_t param_count ;
433
+ zend_array * named_params ;
434
+
435
+ ZEND_PARSE_PARAMETERS_START (0 , -1 )
436
+ Z_PARAM_VARIADIC_WITH_NAMED (params , param_count , named_params );
437
+ ZEND_PARSE_PARAMETERS_END ();
443
438
444
439
if (fiber -> status != ZEND_FIBER_STATUS_INIT ) {
445
440
zend_throw_error (zend_ce_fiber_error , "Cannot start a fiber that has already been started" );
@@ -450,6 +445,8 @@ ZEND_API void zend_fiber_start(zend_fiber *fiber, zval *params, uint32_t param_c
450
445
fiber -> fci .param_count = param_count ;
451
446
fiber -> fci .named_params = named_params ;
452
447
448
+ zend_fiber_context * context = zend_fiber_get_context (fiber );
449
+
453
450
if (!zend_fiber_init_context (context , zend_ce_fiber , zend_fiber_execute , EG (fiber_stack_size ))) {
454
451
RETURN_THROWS ();
455
452
}
@@ -464,22 +461,15 @@ ZEND_API void zend_fiber_start(zend_fiber *fiber, zval *params, uint32_t param_c
464
461
ZVAL_UNDEF (& fiber -> value );
465
462
}
466
463
467
- ZEND_METHOD (Fiber , start )
464
+ ZEND_METHOD (Fiber , suspend )
468
465
{
469
- zend_fiber * fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
470
- zval * params ;
471
- uint32_t param_count ;
472
- zend_array * named_params ;
466
+ zval * value = NULL ;
473
467
474
- ZEND_PARSE_PARAMETERS_START (0 , -1 )
475
- Z_PARAM_VARIADIC_WITH_NAMED (params , param_count , named_params );
468
+ ZEND_PARSE_PARAMETERS_START (0 , 1 )
469
+ Z_PARAM_OPTIONAL
470
+ Z_PARAM_ZVAL (value );
476
471
ZEND_PARSE_PARAMETERS_END ();
477
472
478
- zend_fiber_start (fiber , params , param_count , named_params , return_value );
479
- }
480
-
481
- ZEND_API void zend_fiber_suspend (zval * value , zval * return_value )
482
- {
483
473
if (UNEXPECTED (EG (current_fiber )-> kind != zend_ce_fiber )) {
484
474
zend_throw_error (zend_ce_fiber_error , "Cannot suspend outside of a fiber" );
485
475
RETURN_THROWS ();
@@ -523,20 +513,18 @@ ZEND_API void zend_fiber_suspend(zval *value, zval *return_value)
523
513
ZVAL_UNDEF (& fiber -> value );
524
514
}
525
515
526
- ZEND_METHOD (Fiber , suspend )
516
+ ZEND_METHOD (Fiber , resume )
527
517
{
518
+ zend_fiber * fiber ;
528
519
zval * value = NULL ;
529
520
530
521
ZEND_PARSE_PARAMETERS_START (0 , 1 )
531
522
Z_PARAM_OPTIONAL
532
523
Z_PARAM_ZVAL (value );
533
524
ZEND_PARSE_PARAMETERS_END ();
534
525
535
- zend_fiber_suspend (value , return_value );
536
- }
526
+ fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
537
527
538
- ZEND_API void zend_fiber_resume (zend_fiber * fiber , zval * value , zval * return_value )
539
- {
540
528
if (UNEXPECTED (fiber -> status != ZEND_FIBER_STATUS_SUSPENDED || fiber -> caller != NULL )) {
541
529
zend_throw_error (zend_ce_fiber_error , "Cannot resume a fiber that is not suspended" );
542
530
RETURN_THROWS ();
@@ -560,23 +548,17 @@ ZEND_API void zend_fiber_resume(zend_fiber *fiber, zval *value, zval *return_val
560
548
ZVAL_UNDEF (& fiber -> value );
561
549
}
562
550
563
- ZEND_METHOD (Fiber , resume )
551
+ ZEND_METHOD (Fiber , throw )
564
552
{
565
553
zend_fiber * fiber ;
566
- zval * value = NULL ;
554
+ zval * exception ;
567
555
568
- ZEND_PARSE_PARAMETERS_START (0 , 1 )
569
- Z_PARAM_OPTIONAL
570
- Z_PARAM_ZVAL (value );
556
+ ZEND_PARSE_PARAMETERS_START (1 , 1 )
557
+ Z_PARAM_OBJECT_OF_CLASS (exception , zend_ce_throwable )
571
558
ZEND_PARSE_PARAMETERS_END ();
572
559
573
560
fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
574
561
575
- zend_fiber_resume (fiber , value , return_value );
576
- }
577
-
578
- ZEND_API void zend_fiber_throw (zend_fiber * fiber , zval * exception , zval * return_value )
579
- {
580
562
if (UNEXPECTED (fiber -> status != ZEND_FIBER_STATUS_SUSPENDED || fiber -> caller != NULL )) {
581
563
zend_throw_error (zend_ce_fiber_error , "Cannot resume a fiber that is not suspended" );
582
564
RETURN_THROWS ();
@@ -597,20 +579,6 @@ ZEND_API void zend_fiber_throw(zend_fiber *fiber, zval *exception, zval *return_
597
579
ZVAL_UNDEF (& fiber -> value );
598
580
}
599
581
600
- ZEND_METHOD (Fiber , throw )
601
- {
602
- zend_fiber * fiber ;
603
- zval * exception ;
604
-
605
- ZEND_PARSE_PARAMETERS_START (1 , 1 )
606
- Z_PARAM_OBJECT_OF_CLASS (exception , zend_ce_throwable )
607
- ZEND_PARSE_PARAMETERS_END ();
608
-
609
- fiber = (zend_fiber * ) Z_OBJ_P (getThis ());
610
-
611
- zend_fiber_throw (fiber , exception , return_value );
612
- }
613
-
614
582
ZEND_METHOD (Fiber , isStarted )
615
583
{
616
584
zend_fiber * fiber ;
0 commit comments