Commits

Ruslan Osmanov committed e941cbc

Refact: eio.php

Comments (0)

Files changed (1)

- <?php
-function my_eio_poll($fd, $events, $arg) {
-	echo __FUNCTION__, PHP_EOL;
-    if (eio_nreqs()) {
-        eio_poll();
-    }
-}
+<?php
+/*
+ * Dispatch eio_*() via event
+ */
 
+/* Callback for eio_nop() */
 function my_nop_cb($d, $r) {
-	echo __FUNCTION__, PHP_EOL;
-    var_dump($r, $d);
+	echo "step 6\n";
 }
 
 $dir = "/tmp/abc-eio-temp";
 if (file_exists($dir)) {
-	echo "removing $dir\n";
 	rmdir($dir);
 }
 
 echo "step 1\n";
-$base = event_base_new();
 
-$fd = eio_get_event_stream();
-echo "eio fd:\n";
-var_dump($fd);
+$base = event_base_new();
+$fd   = eio_get_event_stream();
 
 echo "step 2\n";
+
 eio_mkdir($dir, 0750, EIO_PRI_DEFAULT, "my_nop_cb");
 
-$event = event_new($base, $fd, EVENT_READ /*| EVENT_PERSIST*/, function ($fd, $events, $arg) {
-	echo "event_new cb()\nfd = $fd, events = $events\n";
-	if (eio_nreqs()) {
+$event = event_new($base, $fd,
+	EVENT_READ | EVENT_WRITE | EVENT_PERSIST, function ($fd, $events, $base) {
+	echo "step 5\n";
+
+	while (eio_nreqs()) {
 		eio_poll();
 	}
-});
+
+	event_base_loopbreak($base);
+}, $base);
 
 echo "step 3\n";
+
 event_add($event);
 
 echo "step 4\n";
-event_base_loop($base);
+
+event_base_dispatch($base);
+
 echo "Done\n";
-?>