<?php
use \Go\Chan;
use \Go\Scheduler;
go(function () {
$user='root';
$pass='root';
$dsn="mysql:host=127.0.0.1;dbname=test";
$db = new PDO($dsn, $user, $pass);
$rs = $db->query("show tables");
var_dump($rs->fetchall());
});
Scheduler::join();
htf@htf-All-Series:~/workspace/cpp/phpgo$ LD_PRELOAD=liblibgo.so strace php t.php
execve("/home/htf/bin/php", ["php", "t.php"], [/* 71 vars */]) = 0
brk(NULL) = 0x2f8d000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/tls/x86_64/liblibgo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/tls/x86_64", 0x7fff97863760) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/tls/liblibgo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/tls", 0x7fff97863760) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/x86_64/liblibgo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/x86_64", 0x7fff97863760) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/liblibgo.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\373\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=3402616, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd438555000
mmap(NULL, 2428848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd4380e0000
....
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5
fcntl(5, F_GETFL) = 0x2 (flags O_RDWR)
fstat(5, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
fcntl(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(5, SOL_SOCKET, SO_TYPE, [1], [4]) = 0
fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=5, events=POLLIN|POLLOUT|POLLERR|POLLHUP}], 1, 0) = 1 ([{fd=5, revents=POLLOUT}])
getsockopt(5, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(5, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 0) = 1 ([{fd=5, revents=POLLIN}])
epoll_create(10240) = 6
rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x7fd4355f24b0}, NULL, 8) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 5, {EPOLLIN, {u32=5, u64=4294967301}}) = 0
rt_sigprocmask(SIG_SETMASK, [], [], 8) = 0
epoll_wait(6, [{EPOLLIN, {u32=5, u64=4294967301}}], 1024, 0) = 1
epoll_ctl(6, EPOLL_CTL_DEL, 5, 0x7fff97860cc8) = 0
epoll_wait(6, [], 1024, 20) = 0
epoll_wait(6, [], 1024, 20) = 0
epoll_wait(6, [], 1024, 20) = 0
epoll_wait(6, [], 1024, 20) = 0