gitextract_tv1z7_zt/ ├── .clang-format ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE │ ├── dependabot.yml │ └── workflows/ │ ├── alpine.Dockerfile │ ├── core.yml │ ├── coverity.yml │ ├── ext.yml │ ├── framework.yml │ ├── iouring.yml │ ├── thread.yml │ └── unit.yml ├── .gitignore ├── .php-cs-fixer.dist.php ├── CMakeLists.txt ├── Dockerfile ├── LICENSE ├── Makefile.frag ├── README.md ├── codecov.yml ├── composer.json ├── config.m4 ├── core-tests/ │ ├── .gitignore │ ├── code-stats.sh │ ├── docker-compose.yml │ ├── fuzz/ │ │ ├── project.json │ │ └── src/ │ │ └── main.cpp │ ├── include/ │ │ ├── httplib_client.h │ │ ├── httplib_server.h │ │ ├── redis_client.h │ │ ├── test_core.h │ │ ├── test_coroutine.h │ │ ├── test_process.h │ │ └── test_server.h │ ├── js/ │ │ ├── .gitignore │ │ ├── mqtt.js │ │ ├── package.json │ │ ├── ws_1.js │ │ └── ws_2.js │ ├── samples/ │ │ ├── CMakeLists.txt │ │ └── src/ │ │ └── s1.cc │ └── src/ │ ├── _lib/ │ │ ├── http.cpp │ │ ├── process.cpp │ │ ├── redis.cpp │ │ ├── server.cpp │ │ └── ssl.cpp │ ├── core/ │ │ ├── base.cpp │ │ ├── channel.cpp │ │ ├── hash.cpp │ │ ├── heap.cpp │ │ ├── log.cpp │ │ ├── string.cpp │ │ ├── time.cpp │ │ └── util.cpp │ ├── coroutine/ │ │ ├── accept.cpp │ │ ├── async.cpp │ │ ├── base.cpp │ │ ├── channel.cpp │ │ ├── file.cpp │ │ ├── gethostbyname.cpp │ │ ├── hook.cpp │ │ ├── http_server.cpp │ │ ├── iouring.cpp │ │ ├── socket.cpp │ │ ├── system.cpp │ │ └── uring_socket.cpp │ ├── lock/ │ │ └── lock.cpp │ ├── main.cpp │ ├── memory/ │ │ ├── buffer.cpp │ │ ├── fixed_pool.cpp │ │ ├── global_memory.cpp │ │ ├── lru_cache.cpp │ │ ├── ringbuffer.cpp │ │ └── table.cpp │ ├── network/ │ │ ├── address.cpp │ │ ├── client.cpp │ │ ├── dns.cpp │ │ ├── socket.cpp │ │ └── stream.cpp │ ├── os/ │ │ ├── async.cpp │ │ ├── file.cpp │ │ ├── msg_queue.cpp │ │ ├── os.cpp │ │ ├── pipe.cpp │ │ ├── process_pool.cpp │ │ ├── signal.cpp │ │ ├── timer.cpp │ │ └── wait.cpp │ ├── protocol/ │ │ ├── base.cpp │ │ ├── base64.cpp │ │ ├── http2.cpp │ │ ├── mime_type.cpp │ │ ├── redis.cpp │ │ └── ssl.cpp │ ├── reactor/ │ │ └── base.cpp │ └── server/ │ ├── buffer.cpp │ ├── http_parser.cpp │ ├── http_server.cpp │ ├── message_bus.cpp │ ├── mqtt.cpp │ ├── multipart_parser.cpp │ ├── port.cpp │ └── server.cpp ├── docs/ │ ├── API.md │ ├── CHANGELOG.md │ ├── CODE-STYLE.md │ ├── CPPLINT.cfg │ ├── ISSUE.md │ ├── SUPPORTED.md │ ├── TESTS.md │ ├── WORKFLOW-PARAMETERS.md │ ├── google-style.xml │ └── sponsors.md ├── examples/ │ ├── atomic/ │ │ ├── long.php │ │ ├── test.php │ │ └── wait.php │ ├── client/ │ │ ├── c10k.php │ │ ├── get_socket.php │ │ ├── long_tcp.php │ │ ├── recv_1m.php │ │ ├── recv_file.php │ │ ├── select.php │ │ ├── simple.php │ │ ├── sync.php │ │ ├── test.txt │ │ └── udp_sync.php │ ├── coroutine/ │ │ ├── backtrace.php │ │ ├── before_server_start.php │ │ ├── behavior/ │ │ │ ├── do-while.php │ │ │ ├── for.php │ │ │ ├── foreach.php │ │ │ ├── goto.php │ │ │ ├── preemptive_timer.php │ │ │ ├── tick.php │ │ │ ├── while.php │ │ │ └── while2.php │ │ ├── cancel_throw.php │ │ ├── channel/ │ │ │ └── test.php │ │ ├── client_send_yield.php │ │ ├── client_send_yield_server.php │ │ ├── coro_array_map.php │ │ ├── coro_call_user.php │ │ ├── coro_channel.php │ │ ├── coro_destruct.php │ │ ├── coro_destuct.php │ │ ├── coro_empty.php │ │ ├── coro_gethost.php │ │ ├── coro_include.php │ │ ├── coro_invoke.php │ │ ├── coro_nested.php │ │ ├── coro_nested_empty.php │ │ ├── coro_serialize.php │ │ ├── coro_set_stack_size.php │ │ ├── coro_sleep.php │ │ ├── coro_stackless.php │ │ ├── coro_util.php │ │ ├── csp.php │ │ ├── deadlock.php │ │ ├── defer.php │ │ ├── defer_client.php │ │ ├── enable_coroutine.php │ │ ├── exception/ │ │ │ └── empty.php │ │ ├── exec.php │ │ ├── exit_in_coroutine.php │ │ ├── exit_with_status.php │ │ ├── fgets.php │ │ ├── fread.php │ │ ├── fwrite.php │ │ ├── gethostbyname.php │ │ ├── http/ │ │ │ ├── server.php │ │ │ └── write_func.php │ │ ├── http2_client.php │ │ ├── http_backend_serv.php │ │ ├── http_client.php │ │ ├── http_download.php │ │ ├── http_server.php │ │ ├── httpmulti.php │ │ ├── join.php │ │ ├── library/ │ │ │ └── base.php │ │ ├── list_coroutines.php │ │ ├── mysql_chan.php │ │ ├── mysql_escape.php │ │ ├── mysql_execute_empty.php │ │ ├── mysql_prepare.php │ │ ├── mysql_prepare_2.php │ │ ├── mysql_procedure_exec.php │ │ ├── mysql_query.php │ │ ├── mysql_unixsocket.php │ │ ├── pdo/ │ │ │ └── pdo_persistent.phpt │ │ ├── proc_open.php │ │ ├── reconnect_test.php │ │ ├── redis/ │ │ │ ├── auth.php │ │ │ ├── defer.php │ │ │ ├── eval.php │ │ │ ├── get.php │ │ │ ├── multi.php │ │ │ ├── pipeline.php │ │ │ ├── pub.php │ │ │ ├── request.php │ │ │ ├── serialize.php │ │ │ └── sub.php │ │ ├── redis_pool.php │ │ ├── redis_subscribe.php │ │ ├── scheduler.php │ │ ├── select/ │ │ │ ├── 1.php │ │ │ ├── 2.php │ │ │ ├── 3.php │ │ │ ├── 4.php │ │ │ ├── 5.php │ │ │ ├── 6.php │ │ │ ├── 7.php │ │ │ ├── 8.php │ │ │ ├── 9.php │ │ │ ├── poptimeout.php │ │ │ └── test.php │ │ ├── send_yield.php │ │ ├── send_yield_client.php │ │ ├── server/ │ │ │ └── tcp.php │ │ ├── sleep.php │ │ ├── socket/ │ │ │ ├── accept.php │ │ │ └── sendto.php │ │ ├── stack/ │ │ │ ├── 1.php │ │ │ └── 2.php │ │ ├── stack.php │ │ ├── statvfs.php │ │ ├── task_co.php │ │ ├── tcp_backend_serv.php │ │ ├── tcp_echo.php │ │ ├── test.php │ │ ├── timer_test.php │ │ ├── udp_client.php │ │ ├── udp_tcp_timeout.php │ │ ├── user_coroutine.php │ │ ├── util/ │ │ │ ├── resume001.php │ │ │ ├── resume002.php │ │ │ └── resume003.php │ │ ├── waitgroup.php │ │ └── websocket/ │ │ ├── client.php │ │ ├── co_server.php │ │ └── server.php │ ├── cpp/ │ │ ├── Makefile │ │ ├── co.cc │ │ ├── repeat.cc │ │ └── test_server.cc │ ├── curl/ │ │ ├── hook.php │ │ ├── multi.php │ │ └── server.php │ ├── dtls/ │ │ ├── client.php │ │ └── server.php │ ├── eof/ │ │ ├── client.php │ │ └── server.php │ ├── event/ │ │ ├── cycle.php │ │ ├── inotify.php │ │ ├── sockets.php │ │ ├── stdin.php │ │ ├── stream.php │ │ └── test.php │ ├── http/ │ │ ├── UPPER.TXT │ │ ├── client.php │ │ ├── curl.php │ │ ├── detach.php │ │ ├── download.php │ │ ├── empty.txt │ │ ├── event-stream.php │ │ ├── moc.moc │ │ ├── no-compression.php │ │ ├── post.data │ │ ├── raw.php │ │ ├── redirect.php │ │ ├── server.php │ │ ├── static_handler.php │ │ ├── test.txt │ │ └── url_rewrite.php │ ├── http2/ │ │ ├── server.php │ │ ├── streaming.php │ │ └── test.html │ ├── ipv6/ │ │ ├── tcp_client.php │ │ ├── tcp_server.php │ │ ├── udp_client.php │ │ └── udp_server.php │ ├── length/ │ │ ├── client.php │ │ ├── config.php │ │ ├── func.php │ │ └── server.php │ ├── lock/ │ │ └── lock.php │ ├── misc/ │ │ ├── get_local_ip.php │ │ ├── get_local_mac.php │ │ └── version.php │ ├── multicast/ │ │ ├── client.php │ │ └── server.php │ ├── php/ │ │ ├── buf_size.php │ │ ├── debug_server.php │ │ ├── error.php │ │ ├── exception.php │ │ ├── func.php │ │ ├── inotify.php │ │ ├── proc.php │ │ ├── socket_client.php │ │ ├── socket_server.php │ │ ├── stream_client.php │ │ ├── stream_server.php │ │ └── tick.php │ ├── postgresql/ │ │ └── postgresql_coro.php │ ├── process/ │ │ ├── alarm.php │ │ ├── async_master.php │ │ ├── client.php │ │ ├── client3.php │ │ ├── close.php │ │ ├── daemon.php │ │ ├── echo.py │ │ ├── exec.php │ │ ├── func_timeout.php │ │ ├── msg_pop.php │ │ ├── msg_push.php │ │ ├── msgqueue.php │ │ ├── msgqueue2.php │ │ ├── msgqueue_client.php │ │ ├── msgqueue_pool.php │ │ ├── pool_socket.php │ │ ├── python.php │ │ ├── select.php │ │ ├── set_cpu_affinity.php │ │ ├── stdin_stdout.php │ │ ├── test.php │ │ └── worker.php │ ├── process_pool/ │ │ ├── detach.php │ │ └── send.php │ ├── runtime/ │ │ ├── coroutine.php │ │ ├── curl.php │ │ ├── file.php │ │ ├── gethostbyname.php │ │ ├── include.php │ │ ├── mkdir.php │ │ ├── mongodb.php │ │ ├── oci.php │ │ ├── odbc.php │ │ ├── read.php │ │ ├── rename.phpt │ │ ├── select.php │ │ ├── sleep.php │ │ ├── sqlite.php │ │ ├── ssl.php │ │ ├── stream.php │ │ ├── sync.php │ │ ├── time_sleep_until.php │ │ └── unlink.phpt │ ├── server/ │ │ ├── db_pool.php │ │ ├── dispatch_func.php │ │ ├── dispatch_stream.php │ │ ├── echo.php │ │ ├── eof_client.php │ │ ├── eof_server.php │ │ ├── getReceivedTime.php │ │ ├── host_update.php │ │ ├── hot_update_class.php │ │ ├── ip_dispatch.php │ │ ├── length_client.php │ │ ├── length_server.php │ │ ├── listen_1k_port.php │ │ ├── local_listener.php │ │ ├── manager_timer.php │ │ ├── mixed.php │ │ ├── multi_instance.php │ │ ├── multi_port.php │ │ ├── pipe_message.php │ │ ├── proxy_sync.php │ │ ├── redis_pool.php │ │ ├── reload_aysnc.php │ │ ├── reload_force.php │ │ ├── reload_force2.php │ │ ├── send_1m.php │ │ ├── sendfile.php │ │ ├── single.php │ │ ├── tcp_client.php │ │ ├── tcp_server.php │ │ ├── trace.php │ │ ├── uid_dispatch.php │ │ ├── unix_stream.php │ │ └── zmq.php │ ├── socket_coro/ │ │ ├── client.php │ │ ├── server.php │ │ └── udp.php │ ├── ssl/ │ │ ├── ca/ │ │ │ ├── ca-cert.pem │ │ │ ├── ca-key.pem │ │ │ ├── ca-req.csr │ │ │ ├── client-cert.pem │ │ │ ├── client-key.pem │ │ │ ├── client-req.csr │ │ │ ├── client.crt │ │ │ ├── client.key │ │ │ ├── server-cert.pem │ │ │ ├── server-key.pem │ │ │ └── server-req.csr │ │ ├── client.c │ │ ├── client.php │ │ ├── co_client.php │ │ ├── gen_cert.md │ │ ├── http_client.php │ │ ├── passphrase.php │ │ ├── server.php │ │ ├── ssl.crt │ │ ├── ssl.csr │ │ ├── ssl.key │ │ ├── ssl_passwd/ │ │ │ ├── ssl.crt │ │ │ ├── ssl.csr │ │ │ └── ssl.key │ │ ├── stream_client.php │ │ ├── swoole.log │ │ ├── webserver.php │ │ ├── websocket_client.html │ │ └── websocket_server.php │ ├── stdext/ │ │ ├── array.php │ │ ├── foreach.php │ │ ├── ref.php │ │ ├── string.php │ │ ├── typed_array.php │ │ └── typed_array_map.php │ ├── table/ │ │ ├── deadlock.php │ │ ├── iterator.php │ │ ├── server.php │ │ ├── set.php │ │ ├── simulation.php │ │ └── usage.php │ ├── task/ │ │ ├── http.php │ │ ├── msg_push.php │ │ ├── shared_client.php │ │ ├── shared_server.php │ │ ├── task.php │ │ ├── task_coro.php │ │ ├── task_num.php │ │ ├── task_queue.php │ │ └── task_stream.php │ ├── thread/ │ │ ├── aio.php │ │ ├── argv.php │ │ ├── array.php │ │ ├── atomic.php │ │ ├── benchmark.php │ │ ├── co.php │ │ ├── exit.php │ │ ├── hook.php │ │ ├── lock.php │ │ ├── map.php │ │ ├── mt.php │ │ ├── nested_map.php │ │ ├── pipe.php │ │ ├── run_test.php │ │ ├── server.php │ │ ├── signal.php │ │ ├── socket.php │ │ ├── test.php │ │ ├── thread_pool.php │ │ └── thread_server.php │ ├── timer/ │ │ ├── after.php │ │ ├── clear.php │ │ ├── enable_coroutine.php │ │ └── tick.php │ ├── tracer/ │ │ ├── blocking.php │ │ ├── cli.php │ │ ├── co.php │ │ ├── co_server.php │ │ ├── co_socket.php │ │ ├── fn_call.php │ │ └── gc.php │ ├── udp/ │ │ ├── client.php │ │ └── server.php │ ├── unixsock/ │ │ ├── dgram_client.php │ │ ├── dgram_server.php │ │ ├── stream_client.php │ │ └── stream_server.php │ ├── websocket/ │ │ ├── client.html │ │ ├── client.php │ │ └── server.php │ └── www/ │ ├── dir1/ │ │ ├── file1.txt │ │ └── file2.txt │ ├── dir2/ │ │ ├── file1.txt │ │ ├── file2.txt │ │ └── index.txt │ ├── file1.txt │ ├── file2.txt │ ├── index.html │ └── index.txt ├── ext-src/ │ ├── php_swoole.cc │ ├── php_swoole_call_stack.h │ ├── php_swoole_client.h │ ├── php_swoole_coroutine.h │ ├── php_swoole_coroutine_system.h │ ├── php_swoole_curl.h │ ├── php_swoole_cxx.cc │ ├── php_swoole_cxx.h │ ├── php_swoole_firebird.h │ ├── php_swoole_ftp_def.h │ ├── php_swoole_http.h │ ├── php_swoole_http_server.h │ ├── php_swoole_library.h │ ├── php_swoole_odbc.h │ ├── php_swoole_oracle.h │ ├── php_swoole_pgsql.h │ ├── php_swoole_private.h │ ├── php_swoole_process.h │ ├── php_swoole_server.h │ ├── php_swoole_sqlite.h │ ├── php_swoole_ssh2.h │ ├── php_swoole_ssh2_def.h │ ├── php_swoole_ssh2_hook.h │ ├── php_swoole_stdext.h │ ├── php_swoole_thread.h │ ├── php_swoole_websocket.h │ ├── stubs/ │ │ ├── php_swoole.stub.php │ │ ├── php_swoole_arginfo.h │ │ ├── php_swoole_atomic.stub.php │ │ ├── php_swoole_atomic_arginfo.h │ │ ├── php_swoole_channel_coro.stub.php │ │ ├── php_swoole_channel_coro_arginfo.h │ │ ├── php_swoole_client.stub.php │ │ ├── php_swoole_client_arginfo.h │ │ ├── php_swoole_client_async.stub.php │ │ ├── php_swoole_client_async_arginfo.h │ │ ├── php_swoole_client_coro.stub.php │ │ ├── php_swoole_client_coro_arginfo.h │ │ ├── php_swoole_coroutine.stub.php │ │ ├── php_swoole_coroutine_arginfo.h │ │ ├── php_swoole_coroutine_lock.stub.php │ │ ├── php_swoole_coroutine_lock_arginfo.h │ │ ├── php_swoole_coroutine_scheduler.stub.php │ │ ├── php_swoole_coroutine_scheduler_arginfo.h │ │ ├── php_swoole_coroutine_system.stub.php │ │ ├── php_swoole_coroutine_system_arginfo.h │ │ ├── php_swoole_event.stub.php │ │ ├── php_swoole_event_arginfo.h │ │ ├── php_swoole_ex.stub.php │ │ ├── php_swoole_ex_arginfo.h │ │ ├── php_swoole_ftp.stub.php │ │ ├── php_swoole_ftp_arginfo.h │ │ ├── php_swoole_http2_client_coro.stub.php │ │ ├── php_swoole_http2_client_coro_arginfo.h │ │ ├── php_swoole_http_client_coro.stub.php │ │ ├── php_swoole_http_client_coro_arginfo.h │ │ ├── php_swoole_http_cookie.stub.php │ │ ├── php_swoole_http_cookie_arginfo.h │ │ ├── php_swoole_http_request.stub.php │ │ ├── php_swoole_http_request_arginfo.h │ │ ├── php_swoole_http_response.stub.php │ │ ├── php_swoole_http_response_arginfo.h │ │ ├── php_swoole_http_server_coro.stub.php │ │ ├── php_swoole_http_server_coro_arginfo.h │ │ ├── php_swoole_lock.stub.php │ │ ├── php_swoole_lock_arginfo.h │ │ ├── php_swoole_name_resolver.stub.php │ │ ├── php_swoole_name_resolver_arginfo.h │ │ ├── php_swoole_process.stub.php │ │ ├── php_swoole_process_arginfo.h │ │ ├── php_swoole_process_pool.stub.php │ │ ├── php_swoole_process_pool_arginfo.h │ │ ├── php_swoole_redis_server.stub.php │ │ ├── php_swoole_redis_server_arginfo.h │ │ ├── php_swoole_runtime.stub.php │ │ ├── php_swoole_runtime_arginfo.h │ │ ├── php_swoole_server.stub.php │ │ ├── php_swoole_server_arginfo.h │ │ ├── php_swoole_server_port.stub.php │ │ ├── php_swoole_server_port_arginfo.h │ │ ├── php_swoole_socket_coro.stub.php │ │ ├── php_swoole_socket_coro_arginfo.h │ │ ├── php_swoole_ssh2.stub.php │ │ ├── php_swoole_ssh2_arginfo.h │ │ ├── php_swoole_stdext.stub.php │ │ ├── php_swoole_stdext_arginfo.h │ │ ├── php_swoole_table.stub.php │ │ ├── php_swoole_table_arginfo.h │ │ ├── php_swoole_thread.stub.php │ │ ├── php_swoole_thread_arginfo.h │ │ ├── php_swoole_thread_arraylist.stub.php │ │ ├── php_swoole_thread_arraylist_arginfo.h │ │ ├── php_swoole_thread_atomic.stub.php │ │ ├── php_swoole_thread_atomic_arginfo.h │ │ ├── php_swoole_thread_barrier.stub.php │ │ ├── php_swoole_thread_barrier_arginfo.h │ │ ├── php_swoole_thread_lock.stub.php │ │ ├── php_swoole_thread_lock_arginfo.h │ │ ├── php_swoole_thread_map.stub.php │ │ ├── php_swoole_thread_map_arginfo.h │ │ ├── php_swoole_thread_queue.stub.php │ │ ├── php_swoole_thread_queue_arginfo.h │ │ ├── php_swoole_timer.stub.php │ │ ├── php_swoole_timer_arginfo.h │ │ ├── php_swoole_tracer.stub.php │ │ ├── php_swoole_tracer_arginfo.h │ │ ├── php_swoole_websocket.stub.php │ │ └── php_swoole_websocket_arginfo.h │ ├── swoole_admin_server.cc │ ├── swoole_async_coro.cc │ ├── swoole_atomic.cc │ ├── swoole_channel_coro.cc │ ├── swoole_client.cc │ ├── swoole_client_async.cc │ ├── swoole_client_coro.cc │ ├── swoole_coroutine.cc │ ├── swoole_coroutine_lock.cc │ ├── swoole_coroutine_scheduler.cc │ ├── swoole_coroutine_system.cc │ ├── swoole_curl.cc │ ├── swoole_curl_interface.h │ ├── swoole_event.cc │ ├── swoole_firebird.cc │ ├── swoole_http2_client_coro.cc │ ├── swoole_http2_server.cc │ ├── swoole_http_client_coro.cc │ ├── swoole_http_cookie.cc │ ├── swoole_http_request.cc │ ├── swoole_http_response.cc │ ├── swoole_http_server.cc │ ├── swoole_http_server_coro.cc │ ├── swoole_lock.cc │ ├── swoole_name_resolver.cc │ ├── swoole_odbc.cc │ ├── swoole_oracle.cc │ ├── swoole_pgsql.cc │ ├── swoole_process.cc │ ├── swoole_process_pool.cc │ ├── swoole_redis_server.cc │ ├── swoole_runtime.cc │ ├── swoole_server.cc │ ├── swoole_server_port.cc │ ├── swoole_socket_coro.cc │ ├── swoole_sqlite.cc │ ├── swoole_stdext.cc │ ├── swoole_table.cc │ ├── swoole_thread.cc │ ├── swoole_thread_arraylist.cc │ ├── swoole_thread_atomic.cc │ ├── swoole_thread_barrier.cc │ ├── swoole_thread_lock.cc │ ├── swoole_thread_map.cc │ ├── swoole_thread_queue.cc │ ├── swoole_timer.cc │ ├── swoole_tracer.cc │ └── swoole_websocket_server.cc ├── gdbinit ├── include/ │ ├── helper/ │ │ └── kqueue.h │ ├── swoole.h │ ├── swoole_api.h │ ├── swoole_asm_context.h │ ├── swoole_async.h │ ├── swoole_atomic.h │ ├── swoole_base64.h │ ├── swoole_buffer.h │ ├── swoole_channel.h │ ├── swoole_client.h │ ├── swoole_config.h │ ├── swoole_coroutine.h │ ├── swoole_coroutine_api.h │ ├── swoole_coroutine_channel.h │ ├── swoole_coroutine_context.h │ ├── swoole_coroutine_socket.h │ ├── swoole_coroutine_system.h │ ├── swoole_dtls.h │ ├── swoole_error.h │ ├── swoole_file.h │ ├── swoole_file_hook.h │ ├── swoole_hash.h │ ├── swoole_heap.h │ ├── swoole_http.h │ ├── swoole_http2.h │ ├── swoole_iouring.h │ ├── swoole_llhttp.h │ ├── swoole_lock.h │ ├── swoole_log.h │ ├── swoole_lru_cache.h │ ├── swoole_memory.h │ ├── swoole_message_bus.h │ ├── swoole_mime_type.h │ ├── swoole_mqtt.h │ ├── swoole_msg_queue.h │ ├── swoole_pipe.h │ ├── swoole_process_pool.h │ ├── swoole_protocol.h │ ├── swoole_proxy.h │ ├── swoole_reactor.h │ ├── swoole_redis.h │ ├── swoole_server.h │ ├── swoole_signal.h │ ├── swoole_socket.h │ ├── swoole_socket_hook.h │ ├── swoole_socket_impl.h │ ├── swoole_ssl.h │ ├── swoole_static_handler.h │ ├── swoole_string.h │ ├── swoole_table.h │ ├── swoole_thread.h │ ├── swoole_timer.h │ ├── swoole_uring_socket.h │ ├── swoole_util.h │ ├── swoole_version.h │ └── swoole_websocket.h ├── package.xml ├── php-cs-fix ├── php_swoole.h ├── php_swoole_api.h ├── run-core-tests.sh ├── scripts/ │ ├── .gitignore │ ├── clear.sh │ ├── code-format.sh │ ├── code-stats.sh │ ├── debug/ │ │ ├── swoole_info.php │ │ └── swoole_table_implements.php │ ├── docker-compile-with-iouring.sh │ ├── docker-compile-with-thread.sh │ ├── docker-compile.sh │ ├── docker-compose.yml │ ├── docker-iouring-route.sh │ ├── docker-route.sh │ ├── docker-thread-route.sh │ ├── format-changed-files.sh │ ├── install-deps-on-ubuntu.sh │ ├── install-liburing.sh │ ├── library.sh │ ├── make.sh │ ├── pecl-install.sh │ ├── rename.php │ ├── route.sh │ ├── run-tests.sh │ ├── simple-compile-on-github.sh │ └── simple-compile.sh ├── src/ │ ├── core/ │ │ ├── base.cc │ │ ├── base64.cc │ │ ├── buffer.cc │ │ ├── channel.cc │ │ ├── crc32.cc │ │ ├── error.cc │ │ ├── heap.cc │ │ ├── log.cc │ │ ├── misc.cc │ │ ├── string.cc │ │ └── timer.cc │ ├── coroutine/ │ │ ├── base.cc │ │ ├── channel.cc │ │ ├── context.cc │ │ ├── file.cc │ │ ├── file_lock.cc │ │ ├── hook.cc │ │ ├── iouring.cc │ │ ├── socket.cc │ │ ├── system.cc │ │ ├── thread_context.cc │ │ └── uring_socket.cc │ ├── lock/ │ │ ├── barrier.cc │ │ ├── coroutine_lock.cc │ │ ├── mutex.cc │ │ ├── rw_lock.cc │ │ └── spin_lock.cc │ ├── memory/ │ │ ├── fixed_pool.cc │ │ ├── global_memory.cc │ │ ├── ring_buffer.cc │ │ ├── shared_memory.cc │ │ └── table.cc │ ├── network/ │ │ ├── address.cc │ │ ├── client.cc │ │ ├── dns.cc │ │ ├── socket.cc │ │ └── stream.cc │ ├── os/ │ │ ├── async_thread.cc │ │ ├── base.cc │ │ ├── file.cc │ │ ├── msg_queue.cc │ │ ├── pipe.cc │ │ ├── process_pool.cc │ │ ├── sendfile.cc │ │ ├── signal.cc │ │ ├── timer.cc │ │ ├── unix_socket.cc │ │ └── wait.cc │ ├── protocol/ │ │ ├── base.cc │ │ ├── dtls.cc │ │ ├── http.cc │ │ ├── http2.cc │ │ ├── message_bus.cc │ │ ├── mime_type.cc │ │ ├── mqtt.cc │ │ ├── redis.cc │ │ ├── socks5.cc │ │ ├── ssl.cc │ │ └── websocket.cc │ ├── reactor/ │ │ ├── base.cc │ │ ├── epoll.cc │ │ ├── kqueue.cc │ │ └── poll.cc │ ├── server/ │ │ ├── base.cc │ │ ├── manager.cc │ │ ├── master.cc │ │ ├── port.cc │ │ ├── process.cc │ │ ├── reactor_process.cc │ │ ├── reactor_thread.cc │ │ ├── static_handler.cc │ │ ├── task_worker.cc │ │ ├── thread.cc │ │ └── worker.cc │ └── wrapper/ │ ├── event.cc │ ├── http.cc │ └── timer.cc ├── tests/ │ ├── CONTRIBUTION │ ├── README.md │ ├── clean │ ├── include/ │ │ ├── api/ │ │ │ ├── curl_multi.php │ │ │ ├── exit.php │ │ │ ├── http_server.php │ │ │ ├── http_test_cases.php │ │ │ ├── swoole_callback/ │ │ │ │ └── swoole_cannot_destroy_active_lambda_function.php │ │ │ ├── swoole_client/ │ │ │ │ ├── connect_timeout.php │ │ │ │ ├── connect_twice.php │ │ │ │ ├── http_get.php │ │ │ │ ├── opcode_client.php │ │ │ │ ├── simple_client.php │ │ │ │ └── socket_free.php │ │ │ ├── swoole_http_server/ │ │ │ │ ├── http_server.php │ │ │ │ ├── http_server_without_response.php │ │ │ │ ├── simple_http_server.php │ │ │ │ └── simple_https_server.php │ │ │ ├── swoole_server/ │ │ │ │ ├── TestServer.php │ │ │ │ ├── multi_protocol_server.php │ │ │ │ ├── opcode_server.php │ │ │ │ ├── reconnect_fail/ │ │ │ │ │ ├── tcp_client.php │ │ │ │ │ └── tcp_serv.php │ │ │ │ ├── server_manager_process_exit.php │ │ │ │ ├── server_send_fast_recv_slow.php │ │ │ │ ├── simple_server.php │ │ │ │ ├── simple_tcp_server.php │ │ │ │ ├── simple_udp_server.php │ │ │ │ ├── tcp_serv.php │ │ │ │ ├── tcp_task_server.php │ │ │ │ └── testsendfile.txt │ │ │ ├── swoole_thread/ │ │ │ │ ├── putenv.php │ │ │ │ └── sleep.php │ │ │ ├── swoole_timer/ │ │ │ │ ├── accurate_test.php │ │ │ │ ├── fixRate_vs_fixDelay.php │ │ │ │ ├── invalid_args.php │ │ │ │ ├── multi_timer.php │ │ │ │ └── register_shutdown_priority.php │ │ │ ├── swoole_websocket_server/ │ │ │ │ ├── send_large_request_data.php │ │ │ │ ├── send_small_request_data.php │ │ │ │ ├── swoole_websocket_server.php │ │ │ │ └── websocket_client.php │ │ │ ├── syntax_error.txt │ │ │ ├── tcp_server.php │ │ │ └── test_classes/ │ │ │ ├── A.php │ │ │ ├── A2.php │ │ │ └── B.php │ │ ├── bootstrap.php │ │ ├── config.php │ │ ├── functions.php │ │ ├── lib/ │ │ │ ├── composer.json │ │ │ └── src/ │ │ │ ├── Assert.php │ │ │ ├── ChildProcess.php │ │ │ ├── CoServer.php │ │ │ ├── CurlManager.php │ │ │ ├── DbWrapper.php │ │ │ ├── LengthServer.php │ │ │ ├── MQTT/ │ │ │ │ └── Helper.php │ │ │ ├── MysqlPool.php │ │ │ ├── ProcessManager.php │ │ │ ├── RandStr.php │ │ │ ├── Redis/ │ │ │ │ ├── DBConnectException.php │ │ │ │ ├── Lock.php │ │ │ │ ├── Redis.php │ │ │ │ └── SQLPool.php │ │ │ ├── Samtleben/ │ │ │ │ └── WebsocketClient.php │ │ │ ├── ServerManager.php │ │ │ ├── TcpStat.php │ │ │ ├── ThreadManager.php │ │ │ ├── WaitRef.php │ │ │ └── responder/ │ │ │ └── get.php │ │ ├── macos/ │ │ │ └── phpstorm.py │ │ ├── skipif.inc │ │ └── ssl_certs/ │ │ ├── ca-cert.pem │ │ ├── ca-key.pem │ │ ├── ca-req.csr │ │ ├── ca.crt │ │ ├── ca.csr │ │ ├── ca.key │ │ ├── ca.srl │ │ ├── client-cert.pem │ │ ├── client-expired.crt │ │ ├── client-expired.csr │ │ ├── client-expired.key │ │ ├── client-key.pem │ │ ├── client-req.csr │ │ ├── client.crt │ │ ├── client.csr │ │ ├── client.key │ │ ├── client.pem │ │ ├── dhparams.pem │ │ ├── mosquitto.org.crt │ │ ├── passwd.crt │ │ ├── passwd_key.pem │ │ ├── server-cert.pem │ │ ├── server-key.pem │ │ ├── server-req.csr │ │ ├── server.crt │ │ ├── server.csr │ │ ├── server.key │ │ ├── server.pem │ │ ├── sni_server_ca.pem │ │ ├── sni_server_cs.pem │ │ ├── sni_server_cs_cert.pem │ │ ├── sni_server_cs_key.pem │ │ ├── sni_server_uk.pem │ │ ├── sni_server_uk_cert.pem │ │ ├── sni_server_uk_key.pem │ │ ├── sni_server_us.pem │ │ ├── sni_server_us_cert.pem │ │ └── sni_server_us_key.pem │ ├── init │ ├── new │ ├── pgsql.sql │ ├── run-tests │ ├── start.sh │ ├── swoole_atomic/ │ │ ├── atomic.phpt │ │ ├── dtor_in_child.phpt │ │ ├── multi_wakeup.phpt │ │ ├── wait.phpt │ │ ├── wait_and_wakeup.phpt │ │ └── wait_ex.phpt │ ├── swoole_channel_coro/ │ │ ├── 1.phpt │ │ ├── 10.phpt │ │ ├── 2.phpt │ │ ├── 3.phpt │ │ ├── 4.phpt │ │ ├── 5.phpt │ │ ├── 6.phpt │ │ ├── 7.phpt │ │ ├── 8.phpt │ │ ├── 9.phpt │ │ ├── basic.phpt │ │ ├── benchmark.phpt │ │ ├── blocking_timeout.phpt │ │ ├── bug_1947.phpt │ │ ├── bug_clear_timer.phpt │ │ ├── chan_select_timeout.phpt │ │ ├── chan_stats.phpt │ │ ├── close.phpt │ │ ├── coro_wait.phpt │ │ ├── discard.phpt │ │ ├── fibonacci.phpt │ │ ├── http2.phpt │ │ ├── hybird_chan.phpt │ │ ├── hybird_chan2.phpt │ │ ├── hybird_chan3.phpt │ │ ├── lock.phpt │ │ ├── no_ctor.phpt │ │ ├── pool.phpt │ │ ├── pop_after_close.phpt │ │ ├── pop_close1.phpt │ │ ├── pop_timeout1.phpt │ │ ├── pop_timeout2.phpt │ │ ├── pop_timeout3.phpt │ │ ├── pop_timeout4.phpt │ │ ├── pop_timeout5.phpt │ │ ├── pop_timeout6.phpt │ │ ├── pop_timeout7.phpt │ │ ├── pop_timeout8.phpt │ │ ├── push_close1.phpt │ │ ├── push_timeout1.phpt │ │ ├── push_timeout2.phpt │ │ ├── push_timeout3.phpt │ │ ├── push_timeout4.phpt │ │ └── type.phpt │ ├── swoole_client_async/ │ │ ├── base.phpt │ │ ├── big_package_memory_leak.phpt │ │ ├── buffer_full.phpt │ │ ├── connect_dns.phpt │ │ ├── connect_refuse.phpt │ │ ├── connect_refuse_udg.phpt │ │ ├── connect_refuse_unix.phpt │ │ ├── connect_timeout.phpt │ │ ├── connect_twice.phpt │ │ ├── enableSSL.phpt │ │ ├── enableSSL_bad_callback.phpt │ │ ├── enableSSL_before_connect.phpt │ │ ├── eof.phpt │ │ ├── eof_close.phpt │ │ ├── getSocket_bug.phpt │ │ ├── getpeername.phpt │ │ ├── getsockname.phpt │ │ ├── length_protocol.phpt │ │ ├── length_protocol_func.phpt │ │ ├── port_invalid.phpt │ │ ├── sendfile.phpt │ │ └── sleep_wake.phpt │ ├── swoole_client_coro/ │ │ ├── bug_2346.phpt │ │ ├── close.phpt │ │ ├── close_in_other_co.phpt │ │ ├── close_resume.phpt │ │ ├── close_socket_property.phpt │ │ ├── close_twice.phpt │ │ ├── connect_dns_timeout.phpt │ │ ├── connect_timeout.phpt │ │ ├── connect_with_dns.phpt │ │ ├── dtls.phpt │ │ ├── enableSSL.phpt │ │ ├── eof.phpt │ │ ├── eof_02.phpt │ │ ├── eof_03.phpt │ │ ├── eof_04.phpt │ │ ├── export_socket.phpt │ │ ├── fixed_package.phpt │ │ ├── getpeername.phpt │ │ ├── getsockname.phpt │ │ ├── isConnected.phpt │ │ ├── length_01.phpt │ │ ├── length_02.phpt │ │ ├── length_03.phpt │ │ ├── length_04.phpt │ │ ├── length_protocol_func.phpt │ │ ├── length_types.phpt │ │ ├── read_and_write.phpt │ │ ├── reconnect.phpt │ │ ├── reconnect_2.phpt │ │ ├── reconnect_3.phpt │ │ ├── recv_after_close.phpt │ │ ├── recv_bad_packet.phpt │ │ ├── recv_timeout.phpt │ │ ├── recv_timeout2.phpt │ │ ├── recvfrom.phpt │ │ ├── recvfrom_2.phpt │ │ ├── recvfrom_timeout.phpt │ │ ├── recvfrom_timeout2.phpt │ │ ├── send_big.phpt │ │ ├── sendfile.phpt │ │ ├── sendto.phpt │ │ ├── ssl.phpt │ │ ├── ssl_verify.phpt │ │ ├── tcp_client.phpt │ │ ├── tcp_nodelay.phpt │ │ ├── timeout.phpt │ │ ├── udp_client.phpt │ │ ├── udp_recv_failed.phpt │ │ ├── unsock_dgram.phpt │ │ └── unsock_stream.phpt │ ├── swoole_client_sync/ │ │ ├── bind_address.phpt │ │ ├── connect_1.phpt │ │ ├── connect_2.phpt │ │ ├── connect_3.phpt │ │ ├── enableSSL.phpt │ │ ├── enableSSL_2.phpt │ │ ├── eof.phpt │ │ ├── eof_close.phpt │ │ ├── eof_timeout.phpt │ │ ├── http_proxy.phpt │ │ ├── keep1.phpt │ │ ├── keep2.phpt │ │ ├── keep3.phpt │ │ ├── keep4.phpt │ │ ├── keep5.phpt │ │ ├── keep6.phpt │ │ ├── length_protocol.phpt │ │ ├── length_protocol_02.phpt │ │ ├── length_protocol_func.phpt │ │ ├── recv_in_task.phpt │ │ ├── recv_timeout.phpt │ │ ├── recv_with_open_eof_check.phpt │ │ ├── select.phpt │ │ ├── select_null.phpt │ │ ├── send_recv.phpt │ │ ├── sendfile.phpt │ │ ├── sendto.phpt │ │ ├── socks5_proxy.phpt │ │ ├── ssl_recv_timeout.phpt │ │ ├── sync_send_recv.phpt │ │ ├── udg_send_timeout.phpt │ │ └── udp_client_sendto.phpt │ ├── swoole_coroutine/ │ │ ├── after_start_server_1.phpt │ │ ├── all_asleep.phpt │ │ ├── array_walk.phpt │ │ ├── array_walk_deep.phpt │ │ ├── async_callback/ │ │ │ ├── event_cycle.phpt │ │ │ ├── signal.phpt │ │ │ └── timer.phpt │ │ ├── autoload.phpt │ │ ├── autoload_not_found.phpt │ │ ├── autoload_not_found_not_in_coroutine.phpt │ │ ├── autoload_not_in_coroutine.phpt │ │ ├── bailout/ │ │ │ ├── co_redis_in_shutdown_function.phpt │ │ │ ├── error.phpt │ │ │ ├── error_in.phpt │ │ │ ├── error_internal.phpt │ │ │ ├── error_internal2.phpt │ │ │ ├── error_out.phpt │ │ │ └── exit.phpt │ │ ├── before_create_server_1.phpt │ │ ├── before_create_server_2.phpt │ │ ├── before_create_server_3.phpt │ │ ├── bug_2387.phpt │ │ ├── bug_5699.phpt │ │ ├── c_stack_size.phpt │ │ ├── call_not_exists_func.phpt │ │ ├── call_user_func_array.phpt │ │ ├── call_user_func_array2.phpt │ │ ├── call_with_args.phpt │ │ ├── callback.phpt │ │ ├── cancel/ │ │ │ ├── channel_pop.phpt │ │ │ ├── channel_push.phpt │ │ │ ├── error.phpt │ │ │ ├── gethostbyname.phpt │ │ │ ├── kill.phpt │ │ │ ├── sleep.phpt │ │ │ ├── socket.phpt │ │ │ ├── suspend.phpt │ │ │ ├── throw_exception.phpt │ │ │ ├── wait.phpt │ │ │ ├── wait_event.phpt │ │ │ └── wait_signal.phpt │ │ ├── check.phpt │ │ ├── cid.phpt │ │ ├── create_after_rshutdown.phpt │ │ ├── current.phpt │ │ ├── dead_lock.phpt │ │ ├── defer/ │ │ │ ├── defer.phpt │ │ │ ├── defer_close.phpt │ │ │ ├── defer_exception.phpt │ │ │ └── defer_in_try.phpt │ │ ├── destruct/ │ │ │ ├── destruct1.phpt │ │ │ ├── destruct2.phpt │ │ │ └── destruct3.phpt │ │ ├── dnslookup_1.phpt │ │ ├── dnslookup_2.phpt │ │ ├── dnslookup_3.phpt │ │ ├── dnslookup_4.phpt │ │ ├── dnslookup_5.phpt │ │ ├── dnslookup_ipv6.phpt │ │ ├── dnslookup_query_hosts.phpt │ │ ├── empty.phpt │ │ ├── eval.phpt │ │ ├── exception/ │ │ │ ├── core_error.phpt │ │ │ ├── defer1.phpt │ │ │ ├── defer2.phpt │ │ │ ├── dtor.phpt │ │ │ ├── empty.phpt │ │ │ ├── error.phpt │ │ │ ├── error1.phpt │ │ │ ├── error2.phpt │ │ │ ├── error3.phpt │ │ │ ├── fatal_error.phpt │ │ │ ├── nested.phpt │ │ │ ├── yield.phpt │ │ │ └── yield1.phpt │ │ ├── exception.phpt │ │ ├── execute_time.phpt │ │ ├── exists.phpt │ │ ├── exit.phpt │ │ ├── exit_84.phpt │ │ ├── exit_exception_backtrace.phpt │ │ ├── exit_exception_backtrace_84.phpt │ │ ├── fatal_error.phpt │ │ ├── forbidden_case/ │ │ │ ├── array_map.phpt │ │ │ ├── call_user.phpt │ │ │ └── invoke.phpt │ │ ├── getContext.phpt │ │ ├── getElasped.phpt │ │ ├── getPcid.phpt │ │ ├── getPcid_by_random_cid.phpt.phpt │ │ ├── gethostbyname.phpt │ │ ├── iterator.phpt │ │ ├── join/ │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5.phpt │ │ │ ├── 6.phpt │ │ │ ├── 7.phpt │ │ │ └── 8.phpt │ │ ├── kernel_coroutine.phpt │ │ ├── list_and_backtrace.phpt │ │ ├── max_num.phpt │ │ ├── max_num_limit.phpt │ │ ├── nested1.phpt │ │ ├── nested2.phpt │ │ ├── nested3.phpt │ │ ├── nested_empty.phpt │ │ ├── nested_uid.phpt │ │ ├── new_process.phpt │ │ ├── new_server.phpt │ │ ├── no_inline_func.phpt │ │ ├── output/ │ │ │ ├── concurrency.phpt │ │ │ ├── create.phpt │ │ │ ├── in_nested_co.phpt │ │ │ ├── ob_main.phpt │ │ │ └── output_control.phpt │ │ ├── parallel1.phpt │ │ ├── parallel2.phpt │ │ ├── parallel3.phpt │ │ ├── pdo_error_handing.phpt │ │ ├── private_access.phpt │ │ ├── resume_loop.phpt │ │ ├── scheduler.phpt │ │ ├── signal_listener.phpt │ │ ├── stats.phpt │ │ ├── timeout.phpt │ │ ├── use_process.phpt │ │ ├── user_coroutine.phpt │ │ └── user_coroutine_2.phpt │ ├── swoole_coroutine_lock/ │ │ ├── lock.phpt │ │ ├── trylock.phpt │ │ └── trylock2.phpt │ ├── swoole_coroutine_scheduler/ │ │ ├── getOptions.phpt │ │ ├── hook_flags.phpt │ │ ├── hook_flags_2.phpt │ │ ├── parallel.phpt │ │ ├── preemptive/ │ │ │ ├── disable.phpt │ │ │ ├── disable2.phpt │ │ │ ├── do-while.phpt │ │ │ ├── do-while2.phpt │ │ │ ├── do-while3.phpt │ │ │ ├── for.phpt │ │ │ ├── for2.phpt │ │ │ ├── goto.phpt │ │ │ ├── goto2.phpt │ │ │ ├── timer.phpt │ │ │ ├── while.phpt │ │ │ ├── while2.phpt │ │ │ └── while3.phpt │ │ ├── repeat.phpt │ │ ├── resume1.phpt │ │ ├── resume2.phpt │ │ ├── resume3.phpt │ │ ├── resume4.phpt │ │ ├── resume5.phpt │ │ ├── resume6.phpt │ │ ├── start.phpt │ │ ├── start_in_server_shutdown.phpt │ │ └── start_in_server_worker_stop.phpt │ ├── swoole_coroutine_system/ │ │ ├── aio_thread_num.phpt │ │ ├── getaddrinfo.phpt │ │ ├── getaddrinfo_timeout.phpt │ │ ├── gethostbyname.phpt │ │ ├── gethostbyname_ipv6.phpt │ │ ├── gethostbyname_timeout.phpt │ │ ├── readfile.phpt │ │ ├── sleep.phpt │ │ ├── wait.phpt │ │ ├── waitEvent.phpt │ │ ├── waitPid.phpt │ │ ├── waitSignal.phpt │ │ ├── waitSignal_2.phpt │ │ ├── writefile.phpt │ │ └── writefile_append.phpt │ ├── swoole_coroutine_util/ │ │ ├── dns_lookup.phpt │ │ ├── exec.phpt │ │ ├── exec_sleep.phpt │ │ ├── fgets.phpt │ │ ├── fread.phpt │ │ ├── fwrite.phpt │ │ ├── list_coroutine.phpt │ │ └── task_worker.phpt │ ├── swoole_coroutine_wait_group/ │ │ ├── base.phpt │ │ ├── defer.phpt │ │ ├── empty.phpt │ │ └── logic.phpt │ ├── swoole_curl/ │ │ ├── abnormal_response/ │ │ │ ├── 1.phpt │ │ │ └── 2.phpt │ │ ├── basic/ │ │ │ ├── 1.phpt │ │ │ ├── 10.phpt │ │ │ ├── 11.phpt │ │ │ ├── 12.phpt │ │ │ ├── 13.phpt │ │ │ ├── 14.phpt │ │ │ ├── 15.phpt │ │ │ ├── 19.phpt │ │ │ ├── 2.phpt │ │ │ ├── 20.phpt │ │ │ ├── 21.phpt │ │ │ ├── 22.phpt │ │ │ ├── 23.phpt │ │ │ ├── 24.phpt │ │ │ ├── 25.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5.phpt │ │ │ ├── 7.phpt │ │ │ ├── 8.phpt │ │ │ └── 9.phpt │ │ ├── cancel.phpt │ │ ├── close_before_resume.phpt │ │ ├── concurrent.phpt │ │ ├── coro_read.phpt │ │ ├── coro_write.phpt │ │ ├── coro_write_header.phpt │ │ ├── error.phpt │ │ ├── event_exit.phpt │ │ ├── exec_twice.phpt │ │ ├── fatal_error_in_callback.phpt │ │ ├── ftp.phpt │ │ ├── guzzle/ │ │ │ ├── cancel.phpt │ │ │ ├── cannot_cancel_finished.phpt │ │ │ ├── cookie.phpt │ │ │ ├── promise.phpt │ │ │ ├── request_async.phpt │ │ │ ├── request_on_stats.phpt │ │ │ └── send_async.phpt │ │ ├── guzzle.phpt │ │ ├── https.phpt │ │ ├── keepalive.phpt │ │ ├── multi/ │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5.phpt │ │ │ ├── 6.phpt │ │ │ ├── add_after_easy_exec.phpt │ │ │ ├── bug4393.phpt │ │ │ ├── bug48203_multi.phpt │ │ │ ├── bug67643.phpt │ │ │ ├── bug71523.phpt │ │ │ ├── bug76675.phpt │ │ │ ├── bug77535.phpt │ │ │ ├── bug77946.phpt │ │ │ ├── close.phpt │ │ │ ├── curl_basic_018.phpt │ │ │ ├── curl_copy_handle_variation4.phpt │ │ │ ├── curl_int_cast.phpt │ │ │ ├── curl_multi_close_basic.phpt │ │ │ ├── curl_multi_close_basic001.phpt │ │ │ ├── curl_multi_close_reference.phpt │ │ │ ├── curl_multi_errno_strerror_001.phpt │ │ │ ├── curl_multi_getcontent_basic3.phpt │ │ │ ├── curl_multi_info_read.phpt │ │ │ ├── curl_multi_init_basic.phpt │ │ │ ├── curl_multi_segfault.phpt │ │ │ ├── curl_multi_select_basic1.phpt │ │ │ ├── curl_multi_setopt_basic001.phpt │ │ │ ├── dtor.phpt │ │ │ ├── multiple_binding.phpt │ │ │ ├── no_hook.phpt │ │ │ ├── select_cancel.phpt │ │ │ ├── select_timeout.phpt │ │ │ └── select_twice.phpt │ │ ├── non_exclusive.phpt │ │ ├── setopt/ │ │ │ ├── 1.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5_skip.phpt │ │ │ ├── filetime_1.phpt │ │ │ ├── filetime_2.phpt │ │ │ ├── header_out.phpt │ │ │ ├── infile.phpt │ │ │ └── nobody.phpt │ │ ├── share/ │ │ │ ├── 1.phpt │ │ │ └── 5.phpt │ │ ├── sleep.phpt │ │ ├── ssl/ │ │ │ └── version.phpt │ │ ├── symfony-noco.phpt │ │ ├── symfony.phpt │ │ ├── template │ │ ├── timer_coredump.phpt │ │ ├── undefined_behavior/ │ │ │ ├── 0.phpt │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5.phpt │ │ │ ├── 6.phpt │ │ │ ├── 7.phpt │ │ │ └── 8.phpt │ │ ├── upload/ │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ ├── 3.phpt │ │ │ ├── curl_testdata1.txt │ │ │ └── curl_testdata2.txt │ │ └── yield_in_callback.phpt │ ├── swoole_event/ │ │ ├── add_after_server_start.phpt │ │ ├── cycle.phpt │ │ ├── defer.phpt │ │ ├── defer_with_sleep.phpt │ │ ├── defer_without_io.phpt │ │ ├── del.phpt │ │ ├── del_after_close.phpt │ │ ├── deprecated_event_wait.phpt │ │ ├── dispatch.phpt │ │ ├── function_alias.phpt │ │ ├── isset.phpt │ │ ├── kqueue.phpt │ │ ├── rshutdown.phpt │ │ ├── set.phpt │ │ ├── simple.phpt │ │ ├── sockets.phpt │ │ ├── sync_client_1.phpt │ │ ├── sync_client_2.phpt │ │ ├── wait.phpt │ │ └── write.phpt │ ├── swoole_feature/ │ │ ├── cross_close/ │ │ │ ├── client.phpt │ │ │ ├── client_by_server.phpt │ │ │ ├── full_duplex.phpt │ │ │ ├── full_duplex_by_server.phpt │ │ │ ├── http.phpt │ │ │ ├── http_by_server.phpt │ │ │ ├── php_stream_full_duplex.phpt │ │ │ ├── php_stream_full_duplex_by_server.phpt │ │ │ ├── redis.phpt │ │ │ ├── redis_by_server.phpt │ │ │ ├── stream.phpt │ │ │ └── stream_by_server.phpt │ │ └── full_duplex/ │ │ ├── client.phpt │ │ ├── socket.phpt │ │ ├── socket_ssl.phpt │ │ └── websocket.phpt │ ├── swoole_ftp/ │ │ ├── 001.phpt │ │ ├── 002.phpt │ │ ├── 003.phpt │ │ ├── 004.phpt │ │ ├── 005.phpt │ │ ├── 007.phpt │ │ ├── bug27809.phpt │ │ ├── bug37799.phpt │ │ ├── bug39458-2.phpt │ │ ├── bug39458.phpt │ │ ├── bug39583-2.phpt │ │ ├── bug39583.phpt │ │ ├── bug7216-2.phpt │ │ ├── bug7216.phpt │ │ ├── bug79100.phpt │ │ ├── bug80901.phpt │ │ ├── cert.pem │ │ ├── dead-resource.phpt │ │ ├── filesize_large.phpt │ │ ├── ftp_alloc_basic1.phpt │ │ ├── ftp_alloc_basic2.phpt │ │ ├── ftp_append.phpt │ │ ├── ftp_chmod_basic.phpt │ │ ├── ftp_connect_001.phpt │ │ ├── ftp_constructor.phpt │ │ ├── ftp_delete.phpt │ │ ├── ftp_exec_basic.phpt │ │ ├── ftp_fget_basic.phpt │ │ ├── ftp_fget_basic1.phpt │ │ ├── ftp_fget_basic2.phpt │ │ ├── ftp_fget_basic3.phpt │ │ ├── ftp_fput.phpt │ │ ├── ftp_fput_ascii_over_4_kib.phpt │ │ ├── ftp_get_basic.phpt │ │ ├── ftp_get_option.phpt │ │ ├── ftp_mdtm_basic.phpt │ │ ├── ftp_mlsd.phpt │ │ ├── ftp_mlsd_empty_directory.phpt │ │ ├── ftp_mlsd_missing_directory.phpt │ │ ├── ftp_nb_continue.phpt │ │ ├── ftp_nb_fget_basic1.phpt │ │ ├── ftp_nb_fget_basic2.phpt │ │ ├── ftp_nb_fget_basic3.phpt │ │ ├── ftp_nb_fput.phpt │ │ ├── ftp_nb_get_large.phpt │ │ ├── ftp_nb_put.phpt │ │ ├── ftp_pasv.phpt │ │ ├── ftp_rawlist_basic1.phpt │ │ ├── ftp_rawlist_basic2.phpt │ │ ├── ftp_rename_basic1.phpt │ │ ├── ftp_rmdir_basic.phpt │ │ ├── ftp_set_option.phpt │ │ ├── ftp_set_option_errors.phpt │ │ ├── ftp_site_basic.phpt │ │ ├── ftp_ssl_connect_error.phpt │ │ ├── gh10521.phpt │ │ ├── gh10562.phpt │ │ └── server.inc │ ├── swoole_function/ │ │ ├── substr_json_decode.phpt │ │ ├── substr_unserialize.phpt │ │ ├── swoole_clear_dns_cache.phpt │ │ ├── swoole_cpu_num.phpt │ │ ├── swoole_error_log.phpt │ │ ├── swoole_get_local_ip.phpt │ │ ├── swoole_get_local_mac.phpt │ │ ├── swoole_set_process_name.phpt │ │ ├── swoole_strerror.phpt │ │ └── swoole_version.phpt │ ├── swoole_global/ │ │ ├── channel_construct_check.phpt │ │ ├── closed_stdout.phpt │ │ ├── create_deny.phpt │ │ ├── function_alias.phpt │ │ ├── serialize_deny.phpt │ │ ├── socket_construct_check.phpt │ │ ├── too_many_objects.phpt │ │ ├── unset_deny.phpt │ │ ├── unset_property_01.phpt │ │ ├── unset_property_02.phpt │ │ └── unset_property_03.phpt │ ├── swoole_http2_client_coro/ │ │ ├── bug_5127.phpt │ │ ├── connect_twice.phpt │ │ ├── cookies.phpt │ │ ├── error.phpt │ │ ├── goaway.phpt │ │ ├── headers.phpt │ │ ├── host.phpt │ │ ├── http_proxy.phpt │ │ ├── huge_headers.phpt │ │ ├── issues_2374.phpt │ │ ├── max-frame-size.phpt │ │ ├── multi.phpt │ │ ├── no-gzip.phpt │ │ ├── number.phpt │ │ ├── ping.phpt │ │ ├── pipeline.phpt │ │ ├── post.phpt │ │ ├── send-cookies.phpt │ │ ├── send_only_bug.phpt │ │ ├── set-cookies.phpt │ │ ├── sock_type_unix.phpt │ │ └── wrong_headers.phpt │ ├── swoole_http2_server/ │ │ ├── 413.phpt │ │ ├── big_data.phpt │ │ ├── compression.phpt │ │ ├── compression_types.phpt │ │ ├── getMethod.phpt │ │ ├── goaway.phpt │ │ ├── http2_headers.phpt │ │ ├── issue_4365.phpt │ │ ├── max_concurrency.phpt │ │ ├── nghttp2_big_data.phpt │ │ ├── no_compression.phpt │ │ ├── ping.phpt │ │ ├── sendfile.phpt │ │ ├── sendfile_content_type.phpt │ │ ├── sendfile_set_content_type.phpt │ │ ├── server_addr.phpt │ │ ├── static_handler.phpt │ │ ├── streaming.phpt │ │ ├── streaming_2.phpt │ │ ├── trailer.phpt │ │ └── worker_max_concurrency.phpt │ ├── swoole_http2_server_coro/ │ │ └── cookies.phpt │ ├── swoole_http_client_coro/ │ │ ├── 204.phpt │ │ ├── addData.phpt │ │ ├── alias.phpt │ │ ├── another_coroutine.phpt │ │ ├── auto_reconnect.phpt │ │ ├── bind_address.phpt │ │ ├── bug_2661.phpt │ │ ├── bug_3118.phpt │ │ ├── compression_with_big_data.phpt │ │ ├── connect_timeout.phpt │ │ ├── connection_close.phpt │ │ ├── construct_failed.phpt │ │ ├── cookies_set_bug.phpt │ │ ├── defer.phpt │ │ ├── defer_02.phpt │ │ ├── disable_keep_alive.phpt │ │ ├── download.phpt │ │ ├── download_302.phpt │ │ ├── download_failed.phpt │ │ ├── download_filename_bug.phpt │ │ ├── duplicate_header.phpt │ │ ├── error_handler.phpt │ │ ├── get.phpt │ │ ├── get_header_out_after_close.phpt │ │ ├── get_twice.phpt │ │ ├── get_twice_keepalive.phpt │ │ ├── get_without_content_length.phpt │ │ ├── h2c_upgrade.phpt │ │ ├── head_method.phpt │ │ ├── host.phpt │ │ ├── http_chunk.phpt │ │ ├── http_proxy.phpt │ │ ├── http_proxy_443.phpt │ │ ├── http_proxy_with_host_port.phpt │ │ ├── http_upload_big.phpt │ │ ├── https.phpt │ │ ├── https_upload_big.phpt │ │ ├── issue_2664.phpt │ │ ├── keep_alive.phpt │ │ ├── long_domain.phpt │ │ ├── lowercase_header.phpt │ │ ├── multi.phpt │ │ ├── multi_and_reuse.phpt │ │ ├── parser.phpt │ │ ├── post_array.phpt │ │ ├── reconnect_but_failed.phpt │ │ ├── recv_slow_timeout.phpt │ │ ├── recv_timeout.phpt │ │ ├── set_basic_auth.phpt │ │ ├── slow_server.phpt │ │ ├── socks5_proxy.phpt │ │ ├── socks5_proxy_ipv6.phpt │ │ ├── ssl.phpt │ │ ├── ssl_host_name.phpt │ │ ├── ssl_verify_peer_1.phpt │ │ ├── ssl_verify_peer_2.phpt │ │ ├── timeout_before_connect.phpt │ │ ├── timeout_when_recv.phpt │ │ ├── unixsocket.phpt │ │ ├── upload.phpt │ │ ├── upload_huge.phpt │ │ ├── upload_with_null_args.phpt │ │ ├── websocket/ │ │ │ ├── 1.phpt │ │ │ ├── auto_pong.phpt │ │ │ ├── bug_01.phpt │ │ │ ├── bug_02.phpt │ │ │ ├── close_socket.phpt │ │ │ ├── continue_frame_finish_flag.phpt │ │ │ ├── continue_frame_finish_flag2.phpt │ │ │ ├── continue_frames.phpt │ │ │ ├── continue_frames2.phpt │ │ │ ├── continue_frames3.phpt │ │ │ ├── continue_frames4.phpt │ │ │ ├── control_frame_compress.phpt │ │ │ ├── control_frame_fragmented.phpt │ │ │ ├── disconnect.phpt │ │ │ ├── open_websocket_frame.phpt │ │ │ ├── ping.phpt │ │ │ ├── priority.phpt │ │ │ ├── priority1.phpt │ │ │ ├── send_more_continue_frame.phpt │ │ │ ├── send_more_continue_frame2.phpt │ │ │ ├── server_push_first.phpt │ │ │ ├── ssl_1.phpt │ │ │ ├── ssl_2.phpt │ │ │ ├── timeout.phpt │ │ │ └── upgrade_after_get.phpt │ │ ├── write_func_1.phpt │ │ └── write_func_2.phpt │ ├── swoole_http_server/ │ │ ├── 0.phpt │ │ ├── 100-continue.phpt │ │ ├── If_Modified_Since.phpt │ │ ├── accept_encoding.phpt │ │ ├── buffer_output_size.phpt │ │ ├── bug_2368.phpt │ │ ├── bug_2444.phpt │ │ ├── bug_2608.phpt │ │ ├── bug_2751.phpt │ │ ├── bug_2786.phpt │ │ ├── bug_2947.phpt │ │ ├── bug_2988.phpt │ │ ├── bug_4261.phpt │ │ ├── bug_4857.phpt │ │ ├── bug_5107.phpt │ │ ├── bug_5114.phpt │ │ ├── bug_5146.phpt │ │ ├── bug_5186.phpt │ │ ├── bug_6007.phpt │ │ ├── bug_compression_level.phpt │ │ ├── bug_get_request_data_after_end.phpt │ │ ├── callback_new_obj_method.phpt │ │ ├── callback_new_static_method.phpt │ │ ├── callback_string.phpt │ │ ├── callback_with_internal_function.phpt │ │ ├── callback_with_private.phpt │ │ ├── callback_with_protected.phpt │ │ ├── chunk.phpt │ │ ├── chunk_with_end_data.phpt │ │ ├── chunked_pipeline_request.phpt │ │ ├── client_ca.phpt │ │ ├── client_compress.phpt │ │ ├── co_switching.phpt │ │ ├── compression.phpt │ │ ├── compression_min_length.phpt │ │ ├── compression_types.phpt │ │ ├── cookieAlias.phpt │ │ ├── cookie_delete.phpt │ │ ├── cookie_samesite.phpt │ │ ├── cookie_vs_rawcookie.phpt │ │ ├── cookies.phpt │ │ ├── cookies_parse.phpt │ │ ├── create_request.phpt │ │ ├── data_parse.phpt │ │ ├── disable_compression.phpt │ │ ├── disable_coroutine.phpt │ │ ├── dispatch_mode_7.phpt │ │ ├── duplicate_header.phpt │ │ ├── enable_coroutine.phpt │ │ ├── error_1203.phpt │ │ ├── error_413.phpt │ │ ├── event_stream.phpt │ │ ├── event_stream2.phpt │ │ ├── form_data_1.phpt │ │ ├── form_data_with_charset.phpt │ │ ├── head_method.phpt │ │ ├── headers_sent.phpt │ │ ├── headers_sent_coroutine.phpt │ │ ├── http_autoindex.phpt │ │ ├── http_index_files.phpt │ │ ├── http_index_files_autoindex.phpt │ │ ├── https.phpt │ │ ├── issue_2360.phpt │ │ ├── json_encode.phpt │ │ ├── json_encode2.phpt │ │ ├── large_url.phpt │ │ ├── max-age.phpt │ │ ├── max_concurrency.phpt │ │ ├── max_coro_num.phpt │ │ ├── max_execution_time.phpt │ │ ├── max_input_vars.phpt │ │ ├── mixed_server.phpt │ │ ├── new_cookie.phpt │ │ ├── no_compression.phpt │ │ ├── numeric_header_name.phpt │ │ ├── objectCookie.phpt │ │ ├── objectCookieMemory.phpt │ │ ├── octane_bug_651.phpt │ │ ├── pipeline.phpt │ │ ├── post.phpt │ │ ├── purge_method.phpt │ │ ├── range.phpt │ │ ├── range2.phpt │ │ ├── rawContent.phpt │ │ ├── rawCookie.phpt │ │ ├── redirect.phpt │ │ ├── reset_concurrency_with_base.phpt │ │ ├── reset_concurrency_with_process.phpt │ │ ├── response_create.phpt │ │ ├── send_500_to_client.phpt │ │ ├── send_empty_file.phpt │ │ ├── send_yield.phpt │ │ ├── sendfile.phpt │ │ ├── sendfile_client_reset.phpt │ │ ├── sendfile_dir.phpt │ │ ├── sendfile_link.phpt │ │ ├── sendfile_no_keepalive.phpt │ │ ├── sendfile_with_dispatch_mode_7.phpt │ │ ├── sendfile_with_ssl.phpt │ │ ├── server_addr.phpt │ │ ├── server_addr2.phpt │ │ ├── set_content_length.phpt │ │ ├── shutdown_in_event_worker.phpt │ │ ├── shutdown_in_task_worker.phpt │ │ ├── slow_client.phpt │ │ ├── slow_large_post.phpt │ │ ├── sni/ │ │ │ └── server.phpt │ │ ├── static_handler/ │ │ │ ├── locations.phpt │ │ │ ├── mimetype_not_exists.phpt │ │ │ ├── read_link_2.phpt │ │ │ ├── read_link_file.phpt │ │ │ ├── relative_path.phpt │ │ │ ├── relative_path_2.phpt │ │ │ ├── relative_path_3.phpt │ │ │ └── urldecode.phpt │ │ ├── static_handler.phpt │ │ ├── task/ │ │ │ ├── enable_coroutine.phpt │ │ │ ├── enable_coroutine_with_wrong_usage.phpt │ │ │ └── use_object.phpt │ │ ├── tmp-content-type.phpt │ │ ├── too_many_special_chars_in_cookie.phpt │ │ ├── trailer.phpt │ │ ├── unixsocket.phpt │ │ ├── unixsocket2.phpt │ │ ├── unset_response_header.phpt │ │ ├── upload.phpt │ │ ├── upload4.phpt │ │ ├── uploadFile.phpt │ │ ├── upload_02.phpt │ │ ├── upload_03.phpt │ │ ├── upload_big_file.phpt │ │ ├── upload_file_array_default.phpt │ │ ├── upload_file_array_parsed.phpt │ │ ├── upload_file_empty.phpt │ │ ├── upload_max_filesize.phpt │ │ ├── url_rewrite.phpt │ │ ├── worker_max_concurrency.phpt │ │ └── zstd.phpt │ ├── swoole_http_server_coro/ │ │ ├── bad_request.phpt │ │ ├── buffer_clear.phpt │ │ ├── bug_2682.phpt │ │ ├── bug_3025.phpt │ │ ├── bug_4519.phpt │ │ ├── bug_no_handle.phpt │ │ ├── check_cookie_crlf.phpt │ │ ├── check_http_header_crlf.phpt │ │ ├── chunked_pipeline_request.phpt │ │ ├── close_socket.phpt │ │ ├── compress_continue_frames.phpt │ │ ├── compression_min_length.phpt │ │ ├── compression_types.phpt │ │ ├── continue_frames.phpt │ │ ├── continue_frames2.phpt │ │ ├── continue_frames3.phpt │ │ ├── continue_frames4.phpt │ │ ├── control_frame_compress.phpt │ │ ├── control_frame_fragmented.phpt │ │ ├── crash-bad-return-type.phpt │ │ ├── create_response.phpt │ │ ├── create_response_2.phpt │ │ ├── disconnect.phpt │ │ ├── error_404.phpt │ │ ├── error_413.phpt │ │ ├── form_data_1.phpt │ │ ├── form_data_2.phpt │ │ ├── graceful_shutdown.phpt │ │ ├── handle.phpt │ │ ├── http2.phpt │ │ ├── http2_ssl.phpt │ │ ├── https.phpt │ │ ├── ipv6.phpt │ │ ├── keepalive.phpt │ │ ├── open_frame.phpt │ │ ├── ping.phpt │ │ ├── pipeline.phpt │ │ ├── post_array.phpt │ │ ├── random_port.phpt │ │ ├── rawContent_get_big_data.phpt │ │ ├── remote_addr.phpt │ │ ├── restart.phpt │ │ ├── reuse_port.phpt │ │ ├── sendfile.phpt │ │ ├── server_addr.phpt │ │ ├── slow_client.phpt │ │ ├── slow_large_post.phpt │ │ ├── ssl_bad_client.phpt │ │ ├── tcp_nodelay.phpt │ │ ├── upload.phpt │ │ ├── websocket.phpt │ │ ├── websocket_close.phpt │ │ ├── websocket_compression.phpt │ │ ├── websocket_mixed.phpt │ │ ├── websocket_ping.phpt │ │ └── websocket_ping_pong.phpt │ ├── swoole_iouring/ │ │ ├── mix.phpt │ │ └── setting.phpt │ ├── swoole_library/ │ │ ├── array_object/ │ │ │ └── base.phpt │ │ ├── database/ │ │ │ ├── mysqli.phpt │ │ │ ├── pdo.phpt │ │ │ └── redis.phpt │ │ ├── exec/ │ │ │ ├── exec/ │ │ │ │ ├── 1.phpt │ │ │ │ └── 2.phpt │ │ │ └── shell_exec/ │ │ │ └── 1.phpt │ │ ├── multibyte_string_object/ │ │ │ └── base.phpt │ │ ├── name_resolver/ │ │ │ ├── 1.phpt │ │ │ └── lookup.phpt │ │ ├── string_object/ │ │ │ └── base.phpt │ │ └── wait_group/ │ │ ├── normal.phpt │ │ └── timeout.phpt │ ├── swoole_lock/ │ │ ├── bug_5984.phpt │ │ ├── lock_nb.phpt │ │ ├── lock_read.phpt │ │ ├── lock_timeout.phpt │ │ ├── mutex.phpt │ │ └── spinlock_timeout.phpt │ ├── swoole_pdo_firebird/ │ │ ├── base.phpt │ │ ├── pdo_firebird.inc │ │ ├── query.phpt │ │ ├── sleep.phpt │ │ └── transaction.phpt │ ├── swoole_pdo_odbc/ │ │ ├── base.phpt │ │ ├── blocking.phpt │ │ ├── query.phpt │ │ ├── race.phpt │ │ ├── server_info.phpt │ │ ├── sleep.phpt │ │ └── transaction.phpt │ ├── swoole_pdo_oracle/ │ │ ├── bug41996.phpt │ │ ├── bug44301.phpt │ │ ├── bug46274.phpt │ │ ├── bug46274_2.phpt │ │ ├── bug54379.phpt │ │ ├── bug57702.phpt │ │ ├── bug60994.phpt │ │ ├── bug_33707.phpt │ │ ├── checkliveness.phpt │ │ ├── coroutint.phpt │ │ ├── oci_success_with_info.phpt │ │ ├── pdo_oci_attr_action.phpt │ │ ├── pdo_oci_attr_autocommit_1.phpt │ │ ├── pdo_oci_attr_autocommit_2.phpt │ │ ├── pdo_oci_attr_autocommit_3.phpt │ │ ├── pdo_oci_attr_call_timeout.phpt │ │ ├── pdo_oci_attr_case.phpt │ │ ├── pdo_oci_attr_client.phpt │ │ ├── pdo_oci_attr_client_identifier.phpt │ │ ├── pdo_oci_attr_client_info.phpt │ │ ├── pdo_oci_attr_drivername.phpt │ │ ├── pdo_oci_attr_module.phpt │ │ ├── pdo_oci_attr_nulls_1.phpt │ │ ├── pdo_oci_attr_prefetch_1.phpt │ │ ├── pdo_oci_attr_prefetch_2.phpt │ │ ├── pdo_oci_attr_server.phpt │ │ ├── pdo_oci_class_constants.phpt │ │ ├── pdo_oci_debugdumpparams.phpt │ │ ├── pdo_oci_fread_1.phpt │ │ ├── pdo_oci_phpinfo.phpt │ │ ├── pdo_oci_quote1.phpt │ │ ├── pdo_oci_stmt_getcolumnmeta.phpt │ │ ├── pdo_oci_stream_1.phpt │ │ ├── pdo_oci_stream_2.phpt │ │ ├── pdo_oci_templob_1.phpt │ │ ├── pdo_oracle.inc │ │ ├── pecl_bug_11345.phpt │ │ ├── pecl_bug_6364.phpt │ │ ├── transcation.phpt │ │ └── transcation2.phpt │ ├── swoole_pdo_pgsql/ │ │ ├── base.phpt │ │ ├── blocking.phpt │ │ ├── bug_5635.phpt │ │ ├── libpq_version.phpt │ │ ├── pdo_pgsql.inc │ │ ├── query.phpt │ │ ├── race.phpt │ │ ├── sleep.phpt │ │ └── transaction.phpt │ ├── swoole_pdo_sqlite/ │ │ ├── bug33841.phpt │ │ ├── bug35336.phpt │ │ ├── bug38334.phpt │ │ ├── bug43831.phpt │ │ ├── bug44327_2_1.phpt │ │ ├── bug44327_2_2.phpt │ │ ├── bug44327_3_1.phpt │ │ ├── bug44327_3_2.phpt │ │ ├── bug46139.phpt │ │ ├── bug46542.phpt │ │ ├── bug48773.phpt │ │ ├── bug50728.phpt │ │ ├── bug52487.phpt │ │ ├── bug66033.phpt │ │ ├── bug70862.phpt │ │ ├── bug70862_1.phpt │ │ ├── bug78192_1.phpt │ │ ├── bug78192_2.phpt │ │ ├── bug79664_1.phpt │ │ ├── bug79664_2.phpt │ │ ├── bug81740.phpt │ │ ├── bug_42589.phpt │ │ ├── bug_44159_sqlite_version_1.phpt │ │ ├── bug_44159_sqlite_version_2.phpt │ │ ├── bug_47769.phpt │ │ ├── bug_63916-2.phpt │ │ ├── bug_63916_1.phpt │ │ ├── bug_63916_2.phpt │ │ ├── bug_64705.phpt │ │ ├── coroutine.phpt │ │ ├── coroutine2.phpt │ │ ├── debugdumpparams_001.phpt │ │ ├── gh9032.phpt │ │ ├── open_basedir.phpt │ │ ├── pdo_035.phpt │ │ ├── pdo_fetch_func_001.phpt │ │ ├── pdo_fetch_func_001_1.phpt │ │ ├── pdo_sqlite.inc │ │ ├── pdo_sqlite_extendederror_attr.phpt │ │ ├── pdo_sqlite_filename_uri.phpt │ │ ├── pdo_sqlite_get_attribute.phpt │ │ ├── pdo_sqlite_lastinsertid.phpt │ │ ├── pdo_sqlite_open_flags.phpt │ │ ├── pdo_sqlite_statement_getattribute.phpt │ │ ├── pdo_sqlite_tostring_exception.phpt │ │ └── pdo_sqlite_transaction.phpt │ ├── swoole_process/ │ │ ├── alarm.phpt │ │ ├── close.phpt │ │ ├── coro/ │ │ │ ├── ipc.phpt │ │ │ ├── set_protocol.phpt │ │ │ ├── signal.phpt │ │ │ └── start.phpt │ │ ├── ctor.phpt │ │ ├── daemon.phpt │ │ ├── deamon.phpt │ │ ├── echo.py │ │ ├── enable_coroutine.phpt │ │ ├── exception.phpt │ │ ├── exec.phpt │ │ ├── exit.phpt │ │ ├── freeQueue.phpt │ │ ├── getaffinity.phpt │ │ ├── ignore_sigpipe.phpt │ │ ├── ignore_sigpipe_2.phpt │ │ ├── kill.phpt │ │ ├── msgq_capacity.phpt │ │ ├── name.phpt │ │ ├── null_callback.phpt │ │ ├── pop.phpt │ │ ├── priority.phpt │ │ ├── priority_error.phpt │ │ ├── process_exec.phpt │ │ ├── process_id.phpt │ │ ├── process_msgqueue.phpt │ │ ├── process_push.phpt │ │ ├── process_select.phpt │ │ ├── push.phpt │ │ ├── read.phpt │ │ ├── redirect.phpt │ │ ├── setaffinity.phpt │ │ ├── signal.phpt │ │ ├── signal_in_manager.phpt │ │ ├── signal_in_manager_2.phpt │ │ ├── signal_in_manager_3.phpt │ │ ├── signal_in_task_worker.phpt │ │ ├── signal_twice.phpt │ │ ├── start.phpt │ │ ├── timeout.phpt │ │ ├── useQueue.phpt │ │ ├── wait.phpt │ │ ├── wait_signal.phpt │ │ ├── write.phpt │ │ └── write_in_worker.phpt │ ├── swoole_process_pool/ │ │ ├── bug_2652.phpt │ │ ├── create_websocket_server.phpt │ │ ├── detach.phpt │ │ ├── enable_coroutine.phpt │ │ ├── enable_coroutine2.phpt │ │ ├── export_socket.phpt │ │ ├── getprocess_1.phpt │ │ ├── getprocess_2.phpt │ │ ├── getprocess_3.phpt │ │ ├── getprocess_4.phpt │ │ ├── getprocess_5.phpt │ │ ├── master_callback.phpt │ │ ├── master_pid.phpt │ │ ├── max_wait_time.phpt │ │ ├── message.phpt │ │ ├── message_async.phpt │ │ ├── message_bus.phpt │ │ ├── message_bus_sync.phpt │ │ ├── msgqueue.phpt │ │ ├── msgqueue_2.phpt │ │ ├── reload.phpt │ │ ├── reuse_port.phpt │ │ ├── shutdown.phpt │ │ ├── socket_coro.phpt │ │ ├── start_pool_twice_in_same_process.phpt │ │ ├── start_twice.phpt │ │ └── worker_exit_1.phpt │ ├── swoole_redis_server/ │ │ ├── big_packet.phpt │ │ ├── empty.phpt │ │ ├── format.phpt │ │ ├── getHandler.phpt │ │ ├── large_data_map.phpt │ │ └── nested_map.phpt │ ├── swoole_runtime/ │ │ ├── accept.phpt │ │ ├── accept_timeout.phpt │ │ ├── async_protocol.phpt │ │ ├── base.phpt │ │ ├── bindto.phpt │ │ ├── bindto2.phpt │ │ ├── block.phpt │ │ ├── bug_4657.phpt │ │ ├── bug_5104.phpt │ │ ├── cancel_sleep.phpt │ │ ├── destruct.phpt │ │ ├── enable_crypto.phpt │ │ ├── exec/ │ │ │ └── exec.phpt │ │ ├── file_hook/ │ │ │ ├── a.inc │ │ │ ├── async_file.phpt │ │ │ ├── b.inc │ │ │ ├── bug_4327.phpt │ │ │ ├── bug_ftell_2g.phpt │ │ │ ├── bug_scandir.phpt │ │ │ ├── fgets.phpt │ │ │ ├── flock.phpt │ │ │ ├── fread.phpt │ │ │ ├── include.phpt │ │ │ ├── include_2.phpt │ │ │ ├── lock_ex.phpt │ │ │ ├── lock_nb_1.phpt │ │ │ ├── lock_nb_2.phpt │ │ │ ├── lock_sh.phpt │ │ │ ├── open_basedir.phpt │ │ │ ├── read.phpt │ │ │ └── readdir.phpt │ │ ├── file_lock/ │ │ │ ├── async_file.phpt │ │ │ ├── lock_ex.phpt │ │ │ ├── lock_nb.phpt │ │ │ └── lock_sh_1.phpt │ │ ├── ftp_fopen_wrapper.phpt │ │ ├── get_hook_flags.phpt │ │ ├── gethostbyname.phpt │ │ ├── hook_default.phpt │ │ ├── hook_enable_coroutine.phpt │ │ ├── hook_set_flags.phpt │ │ ├── library.phpt │ │ ├── nonblock.phpt │ │ ├── out_of_coroutine.phpt │ │ ├── pdo.phpt │ │ ├── persistent.phpt │ │ ├── proc/ │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ ├── 3.phpt │ │ │ ├── 4.phpt │ │ │ ├── 5.phpt │ │ │ ├── close_after_wait.phpt │ │ │ └── proc_open_pipes.inc │ │ ├── redis_connect.phpt │ │ ├── redis_pconnect.phpt │ │ ├── remote_object/ │ │ │ └── dns.phpt │ │ ├── sento.phpt │ │ ├── set_hook_flags.phpt │ │ ├── sleep.phpt │ │ ├── sleep_yield.phpt │ │ ├── sockets/ │ │ │ ├── basic/ │ │ │ │ ├── bug46360.phpt │ │ │ │ ├── bug49341.phpt │ │ │ │ ├── bug63000.phpt │ │ │ │ ├── bug76839.phpt │ │ │ │ ├── ipv4loop.phpt │ │ │ │ ├── ipv6_skipif.inc │ │ │ │ ├── ipv6loop.phpt │ │ │ │ ├── mcast_helpers.php.inc │ │ │ │ ├── mcast_ipv4_recv.phpt │ │ │ │ ├── mcast_ipv4_send.phpt │ │ │ │ ├── mcast_ipv4_send_error.phpt │ │ │ │ ├── mcast_ipv6_recv.phpt │ │ │ │ ├── mcast_ipv6_recv_limited.phpt │ │ │ │ ├── mcast_ipv6_send.phpt │ │ │ │ ├── socket_accept_failure.phpt │ │ │ │ ├── socket_bind.phpt │ │ │ │ ├── socket_clear_error.phpt │ │ │ │ ├── socket_connect_params.phpt │ │ │ │ ├── socket_create_listen-nobind.phpt │ │ │ │ ├── socket_create_listen.phpt │ │ │ │ ├── socket_create_listen_used.phpt │ │ │ │ ├── socket_create_pair.phpt │ │ │ │ ├── socket_getopt.phpt │ │ │ │ ├── socket_getpeername.phpt │ │ │ │ ├── socket_getpeername_ipv4loop.phpt │ │ │ │ ├── socket_getpeername_ipv6loop.phpt │ │ │ │ ├── socket_getsockname.phpt │ │ │ │ ├── socket_listen-wrongparams.phpt │ │ │ │ ├── socket_read_params.phpt │ │ │ │ ├── socket_select-wrongparams-2.phpt │ │ │ │ ├── socket_select.phpt │ │ │ │ ├── socket_select_error.phpt │ │ │ │ ├── socket_sentto_recvfrom_ipv4_udp.phpt │ │ │ │ ├── socket_sentto_recvfrom_ipv6_udp.phpt │ │ │ │ ├── socket_sentto_recvfrom_unix.phpt │ │ │ │ ├── socket_set_block-retval.phpt │ │ │ │ ├── socket_set_nonblock-retval.phpt │ │ │ │ ├── socket_set_nonblock.phpt │ │ │ │ ├── socket_set_option_bindtodevice.phpt │ │ │ │ ├── socket_set_option_error_socket_option.phpt │ │ │ │ ├── socket_set_option_in6_pktinfo.phpt │ │ │ │ ├── socket_set_option_rcvtimeo.phpt │ │ │ │ ├── socket_set_option_seolinger.phpt │ │ │ │ ├── socket_set_option_sndtimeo.phpt │ │ │ │ ├── socket_setopt_basic.phpt │ │ │ │ ├── socket_shutdown.phpt │ │ │ │ ├── socket_strerror.phpt │ │ │ │ └── unixloop.phpt │ │ │ ├── error.phpt │ │ │ ├── get_name.phpt │ │ │ ├── import.phpt │ │ │ ├── nonblock.phpt │ │ │ ├── socketpair.phpt │ │ │ ├── tcp_client.phpt │ │ │ ├── tcp_server.phpt │ │ │ ├── timeout.phpt │ │ │ └── udp.phpt │ │ ├── ssl/ │ │ │ ├── capture_peer_cert.phpt │ │ │ ├── client.phpt │ │ │ ├── enable_crypto.phpt │ │ │ ├── local_cert.phpt │ │ │ ├── server.phpt │ │ │ └── without_key.phpt │ │ ├── stdin.phpt │ │ ├── stream_context.phpt │ │ ├── stream_context_pass_null.phpt │ │ ├── stream_copy_to_stream_socket.phpt │ │ ├── stream_get_meta_data.phpt │ │ ├── stream_select/ │ │ │ ├── base.phpt │ │ │ ├── blocked.phpt │ │ │ ├── bug46024.phpt │ │ │ ├── bug60120.phpt │ │ │ ├── bug60602.phpt │ │ │ ├── bug64438.phpt │ │ │ ├── bug64770.phpt │ │ │ ├── bug69521.phpt │ │ │ ├── bug72075.phpt │ │ │ ├── conflict.phpt │ │ │ ├── never_timeout.phpt │ │ │ ├── preserve_keys.phpt │ │ │ ├── return_val.phpt │ │ │ ├── rw_events.phpt │ │ │ ├── stream_set_blocking.phpt │ │ │ └── timeout.phpt │ │ ├── stream_socket_pair.phpt │ │ ├── tcp-c10k.phpt │ │ ├── tcp.phpt │ │ ├── udg.phpt │ │ ├── udp-c10k.phpt │ │ ├── udp.phpt │ │ ├── unix.phpt │ │ └── unsafe/ │ │ └── pcntl_fork.phpt │ ├── swoole_server/ │ │ ├── accept_zero.phpt │ │ ├── addListener.phpt │ │ ├── addProcess.phpt │ │ ├── addProcess_base.phpt │ │ ├── addProcess_with_error.phpt │ │ ├── addProcess_with_event_wait.phpt │ │ ├── addProcess_with_tick.phpt │ │ ├── base/ │ │ │ ├── reload_1.phpt │ │ │ ├── reload_2.phpt │ │ │ ├── shutdown.phpt │ │ │ └── shutdown_single.phpt │ │ ├── bigPipeMessage.phpt │ │ ├── big_session_id.phpt │ │ ├── big_udp_packet.phpt │ │ ├── bind.phpt │ │ ├── bug_11000_01.phpt │ │ ├── bug_1864.phpt │ │ ├── bug_2308.phpt │ │ ├── bug_2313.phpt │ │ ├── bug_2639.phpt │ │ ├── bug_2736.phpt │ │ ├── bug_aio.phpt │ │ ├── check_callback.phpt │ │ ├── check_chunk_total_size.phpt │ │ ├── client_close_in_writable_event.phpt │ │ ├── close_force.phpt │ │ ├── close_in_connect_callback.phpt │ │ ├── close_in_manager.phpt │ │ ├── close_in_master.phpt │ │ ├── close_in_non_current_worker.phpt │ │ ├── close_in_other_worker_with_base.phpt │ │ ├── close_in_task_worker.phpt │ │ ├── close_max_fd.phpt │ │ ├── close_queued.phpt │ │ ├── close_reset.phpt │ │ ├── command.phpt │ │ ├── connections.phpt │ │ ├── discard_timeout_packet.phpt │ │ ├── dispatch_fallback.phpt │ │ ├── dispatch_func.phpt │ │ ├── dispatch_func_discard.phpt │ │ ├── dispatch_func_memory_leak.phpt │ │ ├── dispatch_mode_1.phpt │ │ ├── dispatch_mode_10.phpt │ │ ├── dispatch_mode_3.phpt │ │ ├── dispatch_mode_7.phpt │ │ ├── dispatch_mode_8.phpt │ │ ├── dispatch_mode_9.phpt │ │ ├── duplicate_registered.phpt │ │ ├── enable_coroutine.phpt │ │ ├── enable_delay_receive.phpt │ │ ├── enable_reuse_port.phpt │ │ ├── eof_protocol.phpt │ │ ├── eof_server.phpt │ │ ├── event/ │ │ │ ├── before_shutdown.phpt │ │ │ ├── manager_start.phpt │ │ │ ├── manager_stop.phpt │ │ │ ├── shutdown.phpt │ │ │ ├── start.phpt │ │ │ └── worker_exit.phpt │ │ ├── exist.phpt │ │ ├── force_reload.phpt │ │ ├── force_reload2.phpt │ │ ├── force_reload3.phpt │ │ ├── force_reload4.phpt │ │ ├── getCallback.phpt │ │ ├── getClientInfo.phpt │ │ ├── getClientInfo_in_callback_of_close.phpt │ │ ├── getClientInfo_in_callback_of_close_2.phpt │ │ ├── getClientList.phpt │ │ ├── getLastError.phpt │ │ ├── getSocket.phpt │ │ ├── getWorkerStatus.phpt │ │ ├── heartbeat.phpt │ │ ├── heartbeat_true.phpt │ │ ├── heartbeat_with_base.phpt │ │ ├── http_protocol.phpt │ │ ├── idle_worekr_num.phpt │ │ ├── invalid_fd.phpt │ │ ├── invalid_option.phpt │ │ ├── kill_user_process_01.phpt │ │ ├── kill_user_process_02.phpt │ │ ├── kill_worker_01.phpt │ │ ├── kill_worker_02.phpt │ │ ├── last_time.phpt │ │ ├── length/ │ │ │ ├── 00.phpt │ │ │ ├── 01.phpt │ │ │ ├── 02.phpt │ │ │ ├── 03.phpt │ │ │ └── length_func.phpt │ │ ├── listen_fail.phpt │ │ ├── max_idle_time_1.phpt │ │ ├── max_idle_time_2.phpt │ │ ├── max_queued_bytes.phpt │ │ ├── max_request.phpt │ │ ├── max_request_grace_disabled.phpt │ │ ├── max_request_grace_enabled.phpt │ │ ├── max_request_threshold.phpt │ │ ├── memory_leak/ │ │ │ ├── length.phpt │ │ │ ├── pipe_message.phpt │ │ │ ├── task.phpt │ │ │ └── tcp.phpt │ │ ├── mqtt/ │ │ │ ├── length_offset.phpt │ │ │ ├── recv_fail.phpt │ │ │ └── send_big_pack.phpt │ │ ├── new_twice.phpt │ │ ├── object/ │ │ │ ├── event.phpt │ │ │ ├── getManagerPid.phpt │ │ │ ├── getMasterPid.phpt │ │ │ ├── getWorkerId.phpt │ │ │ ├── getWorkerPid.phpt │ │ │ ├── packet.phpt │ │ │ ├── pipe_message.phpt │ │ │ ├── status_info.phpt │ │ │ └── task_result.phpt │ │ ├── onReload.phpt │ │ ├── parse_option_to_size.phpt │ │ ├── pid_file.phpt │ │ ├── protect.phpt │ │ ├── protect_false.phpt │ │ ├── reload.phpt │ │ ├── reload_async.phpt │ │ ├── reload_process.phpt │ │ ├── sendMessage_1.phpt │ │ ├── sendMessage_2.phpt │ │ ├── sendMessage_3.phpt │ │ ├── sendMessage_4.phpt │ │ ├── sendMessage_in_manager.phpt │ │ ├── send_2.phpt │ │ ├── send_2m_in_task_worker.phpt │ │ ├── send_2m_in_user_process.phpt │ │ ├── send_3.phpt │ │ ├── send_big_packet.phpt │ │ ├── send_in_master.phpt │ │ ├── send_in_other_worker_with_base.phpt │ │ ├── sendfile.phpt │ │ ├── sendfile_02.phpt │ │ ├── sendfile_ssl.phpt │ │ ├── sendto_timeout.phpt │ │ ├── shutdown.phpt │ │ ├── shutdown_in_master.phpt │ │ ├── shutdown_in_process.phpt │ │ ├── shutdown_with_base_mode.phpt │ │ ├── sigint_with_base.phpt │ │ ├── sigint_with_process.phpt │ │ ├── single_thread/ │ │ │ ├── heartbeat.phpt │ │ │ ├── large_packet.phpt │ │ │ └── user_setting.phpt │ │ ├── sleep.phpt │ │ ├── slow_client.phpt │ │ ├── slow_master.phpt │ │ ├── slow_worker.phpt │ │ ├── ssl/ │ │ │ ├── 00.phpt │ │ │ ├── bad_client.phpt │ │ │ ├── code/ │ │ │ │ ├── client.go │ │ │ │ └── client.js │ │ │ ├── dtls.phpt │ │ │ ├── dtls_big_packet.phpt │ │ │ ├── dtls_with_length_protocol.phpt │ │ │ ├── golang.phpt │ │ │ ├── heartbeat_1.phpt │ │ │ ├── heartbeat_2.phpt │ │ │ ├── nodejs.phpt │ │ │ ├── ssl_send_wait.phpt │ │ │ ├── verify_01.phpt │ │ │ ├── verify_02.phpt │ │ │ └── verify_03.phpt │ │ ├── start_twice.phpt │ │ ├── stats.phpt │ │ ├── stats_file.phpt │ │ ├── stats_file_json.phpt │ │ ├── stats_file_php.phpt │ │ ├── stop.phpt │ │ ├── stop_in_workerStart.phpt │ │ ├── systemd_fds.phpt │ │ ├── task/ │ │ │ ├── base.phpt │ │ │ ├── bug_2585.phpt │ │ │ ├── callback_is_null.phpt │ │ │ ├── enable_coroutine.phpt │ │ │ ├── finish_timeout.phpt │ │ │ ├── huge_data.phpt │ │ │ ├── idle_worekr_num.phpt │ │ │ ├── invalid_packet.phpt │ │ │ ├── kill_01.phpt │ │ │ ├── kill_02.phpt │ │ │ ├── kill_task_worker_02.phpt │ │ │ ├── scheduler_warning.phpt │ │ │ ├── task_callback.phpt │ │ │ ├── task_co.phpt │ │ │ ├── task_enable_coroutine.phpt │ │ │ ├── task_enable_coroutine_return.phpt │ │ │ ├── task_in_manager.phpt │ │ │ ├── task_in_master.phpt │ │ │ ├── task_in_task_worker.phpt │ │ │ ├── task_in_user_process.phpt │ │ │ ├── task_ipc_mode_2.phpt │ │ │ ├── task_ipc_mode_3.phpt │ │ │ ├── task_max_request.phpt │ │ │ ├── task_pack.phpt │ │ │ ├── task_queue.phpt │ │ │ ├── task_wait.phpt │ │ │ ├── timer.phpt │ │ │ ├── unpack.phpt │ │ │ └── without_onfinish.phpt │ │ ├── taskWaitMulti.phpt │ │ ├── taskwait_01.phpt │ │ ├── taskwait_02.phpt │ │ ├── unregistered_signal.phpt │ │ ├── unsock_dgram.phpt │ │ ├── unsock_stream.phpt │ │ ├── user_process.phpt │ │ ├── user_process_2.phpt │ │ ├── user_process_force_exit.phpt │ │ ├── user_process_pid.phpt │ │ ├── wrong_eof_setting.phpt │ │ └── z_conn_10k.phpt │ ├── swoole_server_coro/ │ │ ├── length_1.phpt │ │ ├── random_port.phpt │ │ ├── reuse_port.phpt │ │ ├── ssl.phpt │ │ └── tcp.phpt │ ├── swoole_server_port/ │ │ ├── connections.phpt │ │ ├── duplicate_registered.phpt │ │ ├── heartbeat_1.phpt │ │ ├── heartbeat_2.phpt │ │ ├── heartbeat_3.phpt │ │ ├── http.phpt │ │ ├── multi_port.phpt │ │ ├── sub_handshake.phpt │ │ └── tcp_eof.phpt │ ├── swoole_socket_coro/ │ │ ├── accept.phpt │ │ ├── all.phpt │ │ ├── bound_error.phpt │ │ ├── cancel.phpt │ │ ├── check_writev_readv_param_type.phpt │ │ ├── closed.phpt │ │ ├── complete_test.phpt │ │ ├── concurrency.phpt │ │ ├── construct_parse_args_failed.phpt │ │ ├── fd.phpt │ │ ├── getBoundCid.phpt │ │ ├── getopt/ │ │ │ ├── get.phpt │ │ │ └── tcpinfo.phpt │ │ ├── getpeername.phpt │ │ ├── getsockname.phpt │ │ ├── icmp.phpt │ │ ├── import_1.phpt │ │ ├── import_2.phpt │ │ ├── import_3.phpt │ │ ├── import_4.phpt │ │ ├── import_5.phpt │ │ ├── iov_max.phpt │ │ ├── peek_and_checkLiveness.phpt │ │ ├── protocol/ │ │ │ ├── bug_3586.phpt │ │ │ └── package_length_func.phpt │ │ ├── readVectorAll.phpt │ │ ├── readVectorAll_ssl.phpt │ │ ├── readVector_ssl.phpt │ │ ├── readVector_ssl_eagain.phpt │ │ ├── readv.phpt │ │ ├── readv_eagain.phpt │ │ ├── recvAll.phpt │ │ ├── recvAll_timeout.phpt │ │ ├── recv_bad_packet.phpt │ │ ├── recv_line.phpt │ │ ├── recv_timeout.phpt │ │ ├── recv_with_buffer.phpt │ │ ├── reuse.phpt │ │ ├── reuse_2.phpt │ │ ├── sendfile.phpt │ │ ├── sendto.phpt │ │ ├── sendto_big.phpt │ │ ├── sendto_large_packet.phpt │ │ ├── server_accept.phpt │ │ ├── setopt/ │ │ │ ├── bindtodevice.phpt │ │ │ ├── ipv6_pktinfo.phpt │ │ │ ├── multicast.phpt │ │ │ ├── recvtimeo.phpt │ │ │ └── reuse.phpt │ │ ├── shutdown.phpt │ │ ├── ssl.phpt │ │ ├── ssl_bad_server.phpt │ │ ├── tcp-c10k.phpt │ │ ├── ulimit.phpt │ │ ├── unix_dgram.phpt │ │ ├── unix_stream.phpt │ │ ├── writeVectorAll.phpt │ │ ├── writeVectorAll_ssl.phpt │ │ ├── writeVector_ssl.phpt │ │ ├── writeVector_ssl_eagain.phpt │ │ ├── writev.phpt │ │ └── writev_eagain.phpt │ ├── swoole_ssh2/ │ │ ├── bug63480.phpt │ │ ├── bug79631.phpt │ │ ├── ssh2_auth.phpt │ │ ├── ssh2_auth_pubkey.phpt │ │ ├── ssh2_auth_pubkey_file.phpt │ │ ├── ssh2_connect.phpt │ │ ├── ssh2_exec.phpt │ │ ├── ssh2_scp_recv.phpt │ │ ├── ssh2_scp_send.phpt │ │ ├── ssh2_send_eof.phpt │ │ ├── ssh2_sftp_001.phpt │ │ ├── ssh2_sftp_002.phpt │ │ ├── ssh2_shell.phpt │ │ ├── ssh2_skip.inc │ │ ├── ssh2_stream_select.phpt │ │ ├── ssh2_test.inc │ │ ├── testkey_ed25519 │ │ └── testkey_ed25519.pub │ ├── swoole_stdext/ │ │ ├── array_method/ │ │ │ ├── 0.phpt │ │ │ ├── 1.phpt │ │ │ ├── 2.phpt │ │ │ └── method.phpt │ │ ├── stream_method/ │ │ │ └── 0.phpt │ │ ├── string_method/ │ │ │ ├── 0.phpt │ │ │ ├── 1.phpt │ │ │ ├── json.phpt │ │ │ ├── marshal.phpt │ │ │ ├── match.phpt │ │ │ ├── mbstring.phpt │ │ │ └── method.phpt │ │ └── typed_array/ │ │ ├── 0.phpt │ │ ├── 1.phpt │ │ ├── 10.phpt │ │ ├── 11.phpt │ │ ├── 2.phpt │ │ ├── 3.phpt │ │ ├── 4.phpt │ │ ├── 5.phpt │ │ ├── 6.phpt │ │ ├── 7.phpt │ │ ├── 8.phpt │ │ ├── 9.phpt │ │ ├── array_pop.phpt │ │ ├── array_push.phpt │ │ ├── array_shift.phpt │ │ ├── array_splice.phpt │ │ ├── array_unshift.phpt │ │ ├── resource.phpt │ │ └── sort.phpt │ ├── swoole_table/ │ │ ├── big_size.phpt │ │ ├── bug_2263.phpt │ │ ├── bug_2290.phpt │ │ ├── create_10k_object.phpt │ │ ├── del.phpt │ │ ├── force_unlock.phpt │ │ ├── foreach.phpt │ │ ├── getMemorySize_1.phpt │ │ ├── get_after_destroy.phpt │ │ ├── get_before_create.phpt │ │ ├── gh-5789.phpt │ │ ├── incr_after_del.phpt │ │ ├── int.phpt │ │ ├── key_value.phpt │ │ ├── negative.phpt │ │ ├── random_bytes.phpt │ │ ├── set_after_del.phpt │ │ ├── stats.phpt │ │ └── type_conv.phpt │ ├── swoole_thread/ │ │ ├── add_update.phpt │ │ ├── affinity.phpt │ │ ├── arraylist.phpt │ │ ├── async-io.phpt │ │ ├── atomic_ctor.phpt │ │ ├── barrier.phpt │ │ ├── co-stream.phpt │ │ ├── co-user-yield.phpt │ │ ├── empty_args.phpt │ │ ├── exit.phpt │ │ ├── fatal_error_1.inc │ │ ├── fatal_error_1.phpt │ │ ├── fatal_error_2.inc │ │ ├── fatal_error_2.phpt │ │ ├── fatal_error_3.phpt │ │ ├── incr.phpt │ │ ├── info.phpt │ │ ├── lock.phpt │ │ ├── map.phpt │ │ ├── map2array.phpt │ │ ├── name.phpt │ │ ├── numeric_strkey.phpt │ │ ├── php_socket.phpt │ │ ├── pipe.phpt │ │ ├── priority.phpt │ │ ├── putenv.phpt │ │ ├── queue.phpt │ │ ├── queue_notify_all.phpt │ │ ├── server/ │ │ │ ├── base.phpt │ │ │ ├── bug_5662.phpt │ │ │ ├── bug_5694.phpt │ │ │ ├── create_response.phpt │ │ │ ├── exit.phpt │ │ │ ├── fatal_error.phpt │ │ │ ├── functions.inc │ │ │ ├── heartbeat.phpt │ │ │ ├── hook_flags.phpt │ │ │ ├── listen.phpt │ │ │ ├── manager_timer.phpt │ │ │ ├── reload.phpt │ │ │ ├── reload_task_workers.phpt │ │ │ ├── reload_task_workers_async.phpt │ │ │ ├── reset_concurrency.phpt │ │ │ ├── send_in_user_process.phpt │ │ │ ├── send_large_packet.phpt │ │ │ ├── setting.phpt │ │ │ ├── stop_worker.phpt │ │ │ ├── taskCo.phpt │ │ │ ├── taskWaitMulti.phpt │ │ │ ├── udp_port.phpt │ │ │ └── websocket.phpt │ │ ├── shell_exec.phpt │ │ ├── signal.phpt │ │ ├── sort.phpt │ │ ├── stdio.phpt │ │ ├── stream.phpt │ │ ├── stream_arg.phpt │ │ ├── thread_status.phpt │ │ └── yield.phpt │ ├── swoole_timer/ │ │ ├── after.phpt │ │ ├── after_fork.phpt │ │ ├── bug_2342.phpt │ │ ├── bug_4794.phpt │ │ ├── bug_4794_2.phpt │ │ ├── bug_4794_3.phpt │ │ ├── bug_4794_4.phpt │ │ ├── bug_4794_5.phpt │ │ ├── bug_4794_6.phpt │ │ ├── bug_4794_7.phpt │ │ ├── bug_4794_8.phpt │ │ ├── call_private.phpt │ │ ├── callback_bug_with_array.phpt │ │ ├── clearAll.phpt │ │ ├── enable_coroutine.phpt │ │ ├── enable_coroutine2.phpt │ │ ├── function_alias.phpt │ │ ├── greater_than_0.phpt │ │ ├── info.phpt │ │ ├── list.phpt │ │ ├── manager.phpt │ │ ├── master.phpt │ │ ├── master_base.phpt │ │ ├── memory.phpt │ │ ├── next_round.phpt │ │ ├── not_exist.phpt │ │ ├── reinit_1.phpt │ │ ├── reinit_2.phpt │ │ ├── stats.phpt │ │ ├── swoole_timer_list_alias.phpt │ │ ├── task_worker.phpt │ │ ├── task_worker_tick_1k.phpt │ │ └── verify.phpt │ ├── swoole_websocket_server/ │ │ ├── bug_1.phpt │ │ ├── close_frame_flag.phpt │ │ ├── close_frame_full.phpt │ │ ├── compression.phpt │ │ ├── disconnect.phpt │ │ ├── disconnect_with_code.phpt │ │ ├── dynamic_property.phpt │ │ ├── empty_message.phpt │ │ ├── exists_and_isEstablished.phpt │ │ ├── fin.phpt │ │ ├── fin2.phpt │ │ ├── get_large_requests.phpt │ │ ├── get_small_requests.phpt │ │ ├── greeter.phpt │ │ ├── header_token.phpt │ │ ├── listener.phpt │ │ ├── malformed_data.phpt │ │ ├── memory.phpt │ │ ├── message_size.phpt │ │ ├── onDisconnct.phpt │ │ ├── pack.phpt │ │ ├── ping.phpt │ │ ├── pingloop.phpt │ │ ├── pingloop_open_ping_pong_frame.phpt │ │ ├── pingpong.phpt │ │ ├── pingpong_open_ping_pong_frame.phpt │ │ ├── query.phpt │ │ ├── recv_decode.phpt │ │ ├── send_close_frame.phpt │ │ ├── send_encode.phpt │ │ ├── send_encode_async.phpt │ │ ├── set_cookie_on_before_handshake_response.phpt │ │ ├── set_cookie_on_handshake.phpt │ │ └── websocket_compress_on_handshake.phpt │ ├── template │ └── test.sql ├── thirdparty/ │ ├── boost/ │ │ └── asm/ │ │ ├── LICENSE │ │ ├── combined.S │ │ ├── jump_arm64_aapcs_elf_gas.S │ │ ├── jump_arm64_aapcs_macho_gas.S │ │ ├── jump_combined_sysv_macho_gas.S │ │ ├── jump_loongarch64_sysv_elf_gas.S │ │ ├── jump_mips64_n64_elf_gas.S │ │ ├── jump_ppc64_sysv_elf_gas.S │ │ ├── jump_ppc64_sysv_macho_gas.S │ │ ├── jump_ppc64_sysv_xcoff_gas.S │ │ ├── jump_riscv64_sysv_elf_gas.S │ │ ├── jump_sparc64_sysv_elf_gas.S │ │ ├── jump_x86_64_sysv_elf_gas.S │ │ ├── jump_x86_64_sysv_macho_gas.S │ │ ├── make_arm64_aapcs_elf_gas.S │ │ ├── make_arm64_aapcs_macho_gas.S │ │ ├── make_combined_sysv_macho_gas.S │ │ ├── make_loongarch64_sysv_elf_gas.S │ │ ├── make_mips64_n64_elf_gas.S │ │ ├── make_ppc64_sysv_elf_gas.S │ │ ├── make_ppc64_sysv_macho_gas.S │ │ ├── make_ppc64_sysv_xcoff_gas.S │ │ ├── make_riscv64_sysv_elf_gas.S │ │ ├── make_sparc64_sysv_elf_gas.S │ │ ├── make_x86_64_sysv_elf_gas.S │ │ └── make_x86_64_sysv_macho_gas.S │ ├── hiredis/ │ │ ├── CHANGELOG.md │ │ ├── COPYING │ │ ├── README.md │ │ ├── alloc.c │ │ ├── alloc.h │ │ ├── fmacros.h │ │ ├── hiredis.c │ │ ├── hiredis.h │ │ ├── net.c │ │ ├── net.h │ │ ├── read.c │ │ ├── read.h │ │ ├── sds.c │ │ ├── sds.h │ │ └── sdsalloc.h │ ├── llhttp/ │ │ ├── LICENSE │ │ ├── LICENSE-MIT │ │ ├── api.c │ │ ├── http.c │ │ ├── llhttp.c │ │ └── llhttp.h │ ├── multipart_parser.c │ ├── multipart_parser.h │ ├── nghttp2/ │ │ ├── COPYING │ │ ├── LICENSE │ │ ├── nghttp2.h │ │ ├── nghttp2_buf.c │ │ ├── nghttp2_buf.h │ │ ├── nghttp2_hd.c │ │ ├── nghttp2_hd.h │ │ ├── nghttp2_hd_huffman.c │ │ ├── nghttp2_hd_huffman.h │ │ ├── nghttp2_hd_huffman_data.c │ │ ├── nghttp2_helper.c │ │ ├── nghttp2_mem.c │ │ ├── nghttp2_mem.h │ │ ├── nghttp2_rcbuf.c │ │ ├── nghttp2_rcbuf.h │ │ └── nghttp2ver.h │ ├── nlohmann/ │ │ ├── LICENSE.MIT │ │ ├── adl_serializer.hpp │ │ ├── detail/ │ │ │ ├── conversions/ │ │ │ │ ├── from_json.hpp │ │ │ │ ├── to_chars.hpp │ │ │ │ └── to_json.hpp │ │ │ ├── exceptions.hpp │ │ │ ├── input/ │ │ │ │ ├── binary_reader.hpp │ │ │ │ ├── input_adapters.hpp │ │ │ │ ├── json_sax.hpp │ │ │ │ ├── lexer.hpp │ │ │ │ ├── parser.hpp │ │ │ │ └── position_t.hpp │ │ │ ├── iterators/ │ │ │ │ ├── internal_iterator.hpp │ │ │ │ ├── iter_impl.hpp │ │ │ │ ├── iteration_proxy.hpp │ │ │ │ ├── iterator_traits.hpp │ │ │ │ ├── json_reverse_iterator.hpp │ │ │ │ └── primitive_iterator.hpp │ │ │ ├── json_pointer.hpp │ │ │ ├── json_ref.hpp │ │ │ ├── macro_scope.hpp │ │ │ ├── macro_unscope.hpp │ │ │ ├── meta/ │ │ │ │ ├── cpp_future.hpp │ │ │ │ ├── detected.hpp │ │ │ │ ├── is_sax.hpp │ │ │ │ ├── type_traits.hpp │ │ │ │ └── void_t.hpp │ │ │ ├── output/ │ │ │ │ ├── binary_writer.hpp │ │ │ │ ├── output_adapters.hpp │ │ │ │ └── serializer.hpp │ │ │ └── value_t.hpp │ │ ├── json.hpp │ │ ├── json_fwd.hpp │ │ └── thirdparty/ │ │ └── hedley/ │ │ ├── hedley.hpp │ │ └── hedley_undef.hpp │ ├── pdo_oci/ │ │ ├── CREDITS │ │ ├── README.md │ │ ├── oci_driver.c │ │ ├── oci_statement.c │ │ ├── pdo_oci.c │ │ └── php_pdo_oci_int.h │ ├── pdo_sqlite/ │ │ ├── php_pdo_sqlite.h │ │ ├── php_pdo_sqlite_int.h │ │ ├── sqlite_driver.c │ │ ├── sqlite_sql_parser.c │ │ └── sqlite_statement.c │ ├── php/ │ │ ├── LICENSE │ │ ├── curl/ │ │ │ ├── curl_arginfo.h │ │ │ ├── curl_private.h │ │ │ ├── interface.cc │ │ │ ├── multi.cc │ │ │ └── php_curl.h │ │ ├── main/ │ │ │ └── SAPI.h │ │ ├── sockets/ │ │ │ ├── conversions.cc │ │ │ ├── conversions.h │ │ │ ├── multicast.cc │ │ │ ├── multicast.h │ │ │ ├── php_sockets_cxx.h │ │ │ ├── sendrecvmsg.cc │ │ │ └── sockaddr_conv.cc │ │ ├── ssh2/ │ │ │ ├── LICENSE │ │ │ ├── php_ssh2.h │ │ │ ├── ssh2.cc │ │ │ ├── ssh2_fopen_wrappers.cc │ │ │ └── ssh2_sftp.cc │ │ ├── standard/ │ │ │ ├── proc_open.cc │ │ │ ├── proc_open.h │ │ │ └── var_decoder.cc │ │ ├── streams/ │ │ │ ├── php_streams_int.h │ │ │ └── plain_wrapper.c │ │ └── zend/ │ │ └── zend_execute.c │ ├── php82/ │ │ ├── pdo_odbc/ │ │ │ ├── odbc_driver.c │ │ │ ├── odbc_stmt.c │ │ │ └── php_pdo_odbc_int.h │ │ └── pdo_pgsql/ │ │ ├── pgsql_driver.c │ │ ├── pgsql_driver_arginfo.h │ │ ├── pgsql_statement.c │ │ └── php_pdo_pgsql_int.h │ ├── php83/ │ │ ├── pdo_odbc/ │ │ │ ├── odbc_driver.c │ │ │ ├── odbc_stmt.c │ │ │ └── php_pdo_odbc_int.h │ │ └── pdo_pgsql/ │ │ ├── pgsql_driver.c │ │ ├── pgsql_driver_arginfo.h │ │ ├── pgsql_statement.c │ │ └── php_pdo_pgsql_int.h │ ├── php84/ │ │ ├── curl/ │ │ │ ├── curl_arginfo.h │ │ │ ├── curl_private.h │ │ │ ├── interface.cc │ │ │ ├── multi.cc │ │ │ └── php_curl.h │ │ ├── ftp/ │ │ │ ├── CREDITS │ │ │ ├── ftp.c │ │ │ ├── ftp.h │ │ │ ├── php_ftp.c │ │ │ └── php_ftp.h │ │ ├── pdo_firebird/ │ │ │ ├── CREDITS │ │ │ ├── firebird_driver.c │ │ │ ├── firebird_statement.c │ │ │ ├── pdo_firebird_utils.cpp │ │ │ ├── pdo_firebird_utils.h │ │ │ └── php_pdo_firebird_int.h │ │ ├── pdo_odbc/ │ │ │ ├── odbc_driver.c │ │ │ ├── odbc_stmt.c │ │ │ └── php_pdo_odbc_int.h │ │ └── pdo_pgsql/ │ │ ├── pgsql_driver.c │ │ ├── pgsql_driver_arginfo.h │ │ ├── pgsql_sql_parser.c │ │ ├── pgsql_statement.c │ │ └── php_pdo_pgsql_int.h │ └── php85/ │ ├── pdo_firebird/ │ │ ├── CREDITS │ │ ├── firebird_driver.c │ │ ├── firebird_statement.c │ │ ├── pdo_firebird_utils.cpp │ │ ├── pdo_firebird_utils.h │ │ └── php_pdo_firebird_int.h │ ├── pdo_odbc/ │ │ ├── odbc_driver.c │ │ ├── odbc_stmt.c │ │ ├── php_pdo_odbc.h │ │ └── php_pdo_odbc_int.h │ └── pdo_pgsql/ │ ├── pdo_pgsql_arginfo.h │ ├── pgsql_driver.c │ ├── pgsql_driver_arginfo.h │ ├── pgsql_sql_parser.c │ ├── pgsql_statement.c │ ├── php_pdo_pgsql.h │ └── php_pdo_pgsql_int.h └── tools/ ├── analysis.php ├── arginfo-check.php ├── bootstrap.php ├── build-library.php ├── code-generator.php ├── composer.json ├── constant-generator.php ├── export.php ├── gen-data.php ├── gen-ext-class.php ├── get-ip-info.php ├── next-version.php ├── option-generator.php ├── pecl-package.php ├── phpt-fixer.php ├── rename.php ├── send-http-data.php ├── show-big-files.php └── templates/ ├── class.c └── version.tpl.h