Skip to content

Instantly share code, notes, and snippets.

@5lava
Created August 2, 2013 02:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 5lava/62629f3d66c9124d2877 to your computer and use it in GitHub Desktop.
Save 5lava/62629f3d66c9124d2877 to your computer and use it in GitHub Desktop.
<?php
class Bar {
public $name;
public $event;
public function callback($name) {
}
public function __construct($name) {
$this->name = $name;
}
public function __destruct() {
echo 'destruct ', $this->name, PHP_EOL;
}
}
$base = event_base_new();
$obj1 = new Bar(1);
$event = event_new();
event_set($event, STDIN, EV_READ | EV_PERSIST, [$obj1, 'callback']);
event_base_set($event, $base);
$event = null;
$obj1 = null;
gc_collect_cycles();
echo "==== THE END of test 1 ====\n";
$obj2 = new Bar(2);
$obj3 = new Bar(3);
$obj3->event = event_new();
event_set($obj3->event, STDIN, EV_READ | EV_PERSIST, [$obj2, 'callback']);
event_base_set($obj3->event, $base);
$obj3 = null;
$obj2 = null;
gc_collect_cycles();
echo "==== THE END of test 2 ====\n";
$obj4 = new Bar(4);
$obj4->event = event_new();
event_set($obj4->event, STDIN, EV_READ | EV_PERSIST, [$obj4, 'callback']);
event_base_set($obj4->event, $base);
$obj4 = null;
gc_collect_cycles();
echo "==== THE END of test 3 ====\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment