@@ -326,7 +326,7 @@ public function testDisableWithConsecutiveCancel(string $type, array $args): voi
326326
327327 $ invoked = false ;
328328 $ this ->start (function (Driver $ loop ) use (&$ invoked , $ type , $ args ): void {
329- $ func = [ $ loop, $ type] ;
329+ $ func = $ loop->{ $ type}(...) ;
330330 $ callbackId = $ func (...$ args );
331331 $ loop ->disable ($ callbackId );
332332 $ loop ->defer (function () use (&$ invoked , $ loop , $ callbackId ): void {
@@ -347,7 +347,7 @@ public function testCallbackReferenceInfo(string $type, array $args): void
347347
348348 $ loop = $ this ->loop ;
349349
350- $ func = [ $ loop, $ type] ;
350+ $ func = $ loop->{ $ type}(...) ;
351351 if (\str_starts_with ($ type , "on " )) {
352352 $ type = "on_ " . \lcfirst (\substr ($ type , 2 ));
353353 }
@@ -430,7 +430,7 @@ public function testCallbackRegistrationAndCancellationInfo(string $type, array
430430
431431 $ loop = $ this ->loop ;
432432
433- $ func = [ $ loop, $ type] ;
433+ $ func = $ loop->{ $ type}(...) ;
434434 if (\str_starts_with ($ type , "on " )) {
435435 $ type = "on_ " . \lcfirst (\substr ($ type , 2 ));
436436 }
@@ -472,32 +472,37 @@ public function testNoMemoryLeak(string $type, array $args): void
472472 self ::markTestSkipped ('Skip on Windows for now, investigate ' );
473473 }
474474
475- $ runs = 2000 ;
476-
477475 if ($ type === "onSignal " ) {
478476 $ this ->checkForSignalCapability ();
479477 }
480478
481- $ this ->start (function (Driver $ loop ) use ($ type , $ args , $ runs ) {
479+ $ this ->start (function (Driver $ loop ) use ($ type , $ args ): void {
480+ $ runs = 2000 ;
481+
482482 $ initialMem = \memory_get_usage ();
483483 $ cb = static function ($ runs ) use ($ loop , $ type , $ args ): void {
484- $ func = [ $ loop, $ type] ;
484+ $ func = $ loop->{ $ type}(...) ;
485485 for ($ callbacks = [], $ i = 0 ; $ i < $ runs ; $ i ++) {
486486 $ callbacks [] = $ func (...$ args );
487487 }
488+
488489 foreach ($ callbacks as $ callback ) {
489490 $ loop ->cancel ($ callback );
490491 }
492+
491493 for ($ callbacks = [], $ i = 0 ; $ i < $ runs ; $ i ++) {
492494 $ callbacks [] = $ func (...$ args );
493495 }
496+
494497 foreach ($ callbacks as $ callback ) {
495498 $ loop ->disable ($ callback );
496499 $ loop ->cancel ($ callback );
497500 }
501+
498502 for ($ callbacks = [], $ i = 0 ; $ i < $ runs ; $ i ++) {
499503 $ callbacks [] = $ func (...$ args );
500504 }
505+
501506 if ($ type === "repeat " ) {
502507 $ loop ->delay (0.007 , function () use ($ loop , $ callbacks ): void {
503508 foreach ($ callbacks as $ callback ) {
@@ -511,33 +516,29 @@ public function testNoMemoryLeak(string $type, array $args): void
511516 }
512517 });
513518 }
519+
514520 $ loop ->run ();
515- if ($ type === "defer " ) {
516- $ loop ->defer ($ fn = static function () use (&$ fn , $ loop , $ runs ): void {
521+
522+ match ($ type ) {
523+ "defer " => $ loop ->defer ($ fn = static function () use (&$ fn , $ loop , $ runs ): void {
517524 static $ i = null ;
518525
519526 $ i = $ i ?? $ runs ;
520527
521528 if ($ i --) {
522529 $ loop ->defer ($ fn );
523530 }
524- });
525- $ loop ->run ();
526- }
527- if ($ type === "delay " ) {
528- $ loop ->delay (0 , $ fn = static function () use (&$ fn , $ loop , $ runs ): void {
531+ }),
532+ "delay " => $ loop ->delay (0 , $ fn = static function () use (&$ fn , $ loop , $ runs ): void {
529533 static $ i = null ;
530534
531535 $ i = $ i ?? $ runs ;
532536
533537 if ($ i --) {
534538 $ loop ->delay (0 , $ fn );
535539 }
536- });
537- $ loop ->run ();
538- }
539- if ($ type === "repeat " ) {
540- $ loop ->repeat (0 , $ fn = static function ($ callbackId ) use (&$ fn , $ loop , $ runs ): void {
540+ }),
541+ "repeat " => $ loop ->repeat (0 , $ fn = static function ($ callbackId ) use (&$ fn , $ loop , $ runs ): void {
541542 static $ i = null ;
542543
543544 $ i = $ i ?? $ runs ;
@@ -546,11 +547,8 @@ public function testNoMemoryLeak(string $type, array $args): void
546547 if ($ i --) {
547548 $ loop ->repeat (0 , $ fn );
548549 }
549- });
550- $ loop ->run ();
551- }
552- if ($ type === "onWritable " ) {
553- $ loop ->defer (static function ($ callbackId ) use ($ loop , $ runs ): void {
550+ }),
551+ "onReadable " , "onWritable " => $ loop ->defer (static function ($ callbackId ) use ($ loop , $ runs ): void {
554552 $ fn = static function ($ callbackId , $ socket ) use (&$ fn , $ loop , $ runs ): void {
555553 static $ i = null ;
556554
@@ -577,35 +575,38 @@ public function testNoMemoryLeak(string $type, array $args): void
577575 };
578576
579577 $ fn ($ callbackId , null );
580- });
581- $ loop ->run ();
582- }
583- if ($ type === "onSignal " ) {
584- $ sendSignal = static function (): void {
585- \posix_kill (\getmypid (), \SIGUSR1 );
586- };
587- $ loop ->onSignal (
588- \SIGUSR1 ,
589- $ fn = static function ($ callbackId ) use (&$ fn , $ loop , $ sendSignal , $ runs ): void {
590- static $ i = null ;
578+ }),
579+ "onSignal " => $ loop ->defer (function () use ($ loop , $ runs ): void {
580+ $ sendSignal = static function (): void {
581+ \posix_kill (\getmypid (), \SIGUSR1 );
582+ };
583+ $ loop ->onSignal (
584+ \SIGUSR1 ,
585+ $ fn = static function ($ callbackId ) use (&$ fn , $ loop , $ sendSignal , $ runs ): void {
586+ static $ i = null ;
591587
592- $ i = $ i ?? $ runs ;
588+ $ i = $ i ?? $ runs ;
593589
594- if ($ i --) {
595- $ loop ->onSignal (\SIGUSR1 , $ fn );
596- $ loop ->delay (0 , $ sendSignal );
590+ if ($ i --) {
591+ $ loop ->onSignal (\SIGUSR1 , $ fn );
592+ $ loop ->delay (0 , $ sendSignal );
593+ }
594+ $ loop ->cancel ($ callbackId );
597595 }
598- $ loop -> cancel ( $ callbackId );
599- }
600- );
601- $ loop -> delay ( 0 , $ sendSignal ) ;
602- $ loop -> run ();
603- }
596+ );
597+ $ loop -> delay ( 0 , $ sendSignal );
598+ }),
599+ } ;
600+
601+ $ loop -> run ();
604602 };
603+
605604 $ closureMem = \memory_get_usage () - $ initialMem ;
606605 $ cb ($ runs ); /* just to set up eventual structures inside loop without counting towards memory comparison */
606+
607607 \gc_collect_cycles ();
608608 $ initialMem = \memory_get_usage () - $ closureMem ;
609+
609610 $ cb ($ runs );
610611 unset($ cb );
611612
0 commit comments