@@ -347,11 +347,13 @@ function testWatcherRegistrationAndCancellationInfo($type, $args)
347
347
/** @dataProvider provideRegistrationArgs */
348
348
function testNoMemoryLeak ($ type , $ args )
349
349
{
350
+ $ runs = 2000 ;
351
+
350
352
if ($ type === "onSignal " ) {
351
353
$ this ->testSignalCapability ();
352
354
}
353
355
354
- $ this ->start (function (Driver $ loop ) use ($ type , $ args ) {
356
+ $ this ->start (function (Driver $ loop ) use ($ type , $ args, $ runs ) {
355
357
$ initialMem = memory_get_usage ();
356
358
$ cb = function ($ runs ) use ($ loop , $ type , $ args ) {
357
359
$ func = [$ loop , $ type ];
@@ -444,17 +446,17 @@ function testNoMemoryLeak($type, $args)
444
446
}
445
447
};
446
448
$ closureMem = memory_get_usage () - $ initialMem ;
447
- $ cb (10000 ); /* just to set up eventual structures inside loop without counting towards memory comparison */
449
+ $ cb ($ runs ); /* just to set up eventual structures inside loop without counting towards memory comparison */
448
450
gc_collect_cycles ();
449
451
$ initialMem = memory_get_usage () - $ closureMem ;
450
- $ cb (10000 );
452
+ $ cb ($ runs );
451
453
unset($ cb );
452
454
453
455
gc_collect_cycles ();
454
456
$ endMem = memory_get_usage ();
455
457
456
458
/* this is allowing some memory usage due to runtime caches etc., but nothing actually leaking */
457
- $ this ->assertLessThan (40000 , $ endMem - $ initialMem ); // 4 * 10000 , as 4 is minimal sizeof(void *)
459
+ $ this ->assertLessThan ($ runs * 4 , $ endMem - $ initialMem ); // * 4 , as 4 is minimal sizeof(void *)
458
460
});
459
461
}
460
462
@@ -496,7 +498,7 @@ function testExecutionOrderGuarantees()
496
498
$ del1 = $ loop ->delay ($ msDelay = 0 , $ dep (1 , $ del ));
497
499
$ del2 = $ loop ->delay ($ msDelay = 0 , $ dep (3 , $ del ));
498
500
$ del3 = $ loop ->delay ($ msDelay = 0 , $ f ());
499
- $ del4 = $ loop ->delay ($ msDelay = 0 , $ f (1 , 3 ));
501
+ $ del4 = $ loop ->delay ($ msDelay = 0 , $ dep ( 1 , $ defdel = $ f (1 , 3 ) ));
500
502
$ loop ->cancel ($ del3 );
501
503
$ loop ->disable ($ del1 );
502
504
$ loop ->disable ($ del2 );
@@ -506,19 +508,21 @@ function testExecutionOrderGuarantees()
506
508
$ loop ->disable ($ writ1 );
507
509
$ loop ->disable ($ writ2 );
508
510
$ loop ->enable ($ writ1 );
509
- $ writ4 = $ loop ->onWritable (STDIN , $ f (1 , 3 ));
511
+ $ writ4 = $ loop ->onWritable (STDIN , $ dep ( 1 , $ defwrit = $ f (1 , 3 ) ));
510
512
$ loop ->onWritable (STDIN , $ dep (2 , $ writ ));
511
513
$ loop ->enable ($ writ2 );
512
514
$ loop ->disable ($ writ4 );
513
- $ loop ->defer (function () use ($ loop , $ writ4 ) {
515
+ $ loop ->defer (function () use ($ loop , $ writ4 , $ dep , $ defwrit ) {
516
+ $ loop ->onWritable (STDIN , $ dep (0 , $ defwrit ));
514
517
$ loop ->enable ($ writ4 );
515
518
});
516
519
517
520
$ loop ->enable ($ del1 );
518
521
$ loop ->delay ($ msDelay = 0 , $ dep (2 , $ del ));
519
522
$ loop ->enable ($ del2 );
520
523
$ loop ->disable ($ del4 );
521
- $ loop ->defer (function () use ($ loop , $ del4 ) {
524
+ $ loop ->defer (function () use ($ loop , $ del4 , $ dep , $ defdel ) {
525
+ $ loop ->onWritable (STDIN , $ dep (0 , $ defdel ));
522
526
$ loop ->enable ($ del4 );
523
527
});
524
528
0 commit comments