--enable-swoole-thread
option to the configure command to activate it.Swoole\Thread
. @matyhtfSwoole\Thread\Lock
. @matyhtfSwoole\Thread\Atomic
, Swoole\Thread\Atomic\Long
. @matyhtfSwoole\Thread\Map
, Swoole\Thread\ArrayList
, Swoole\Thread\Queue
. @matyhtfio_uring
as the underlying engine for file asynchronous operations. When liburing is installed and Swoole is compiled with the --enable-iouring option, the asynchronous operations of functions such as file_get_contents, file_put_contents, fopen, fclose, fread, fwrite, mkdir, unlink, fsync, fdatasync, rename, fstat, lstat, and filesize will be implemented by io_uring. @matyhtf @NathanFreemanBoost Context
to version 1.84. Now, Loongson CPUs can also support coroutines. @NathanFreemanSwoole\Thread\Map::find()
method. @matyhtfSwoole\Thread\ArrayList::find()
method. @matyhtfSwoole\Thread\ArrayList::offsetUnset()
method. @matyhtfSwoole\Process::getAffinity()
method. @matyhtfSwoole\Thread::setName()
method. @matyhtfSwoole\Thread::setAffinity()
method. @matyhtfSwoole\Thread::getAffinity()
method. @matyhtfSwoole\Thread::setPriority()
method. @matyhtfSwoole\Thread::getPriority()
method. @matyhtfSwoole\Thread::gettid()
method.iouring
supports multi-threaded polling mode IORING_SETUP_SQPOLL
. @NathanFreemaniouring_workers
to modify the number of iouring
threads. @NathanFreemaniouring_flags
to support modifying the iouring
working mode. @NathanFreemanSwoole\Thread\Barrier
for multi-thread synchronization barrier. @matyhtfnon-blocking, reentrant coroutine mutex lock
, which can be used between processes/threads without blocking them. @NathanFreemanSwoole\Coroutine\Socket::getOption()
supports the TCP_INFO
option. @matyhtfSwoole\Client
synchronous blocking client supports http
proxy. @matyhtfTCP/UDP/Unix socket
client Swoole\Async\Client
. @matyhtfSwoole\Redis\Server::format()
method to support zero-copy memory, support redis
nested structure. @matyhtfZstd
. You only need to add --enable-zstd
when compiling Swoole
, and then zstd
can be used to compress or decode responses between the http
client and server. @NathanFreemanpecl
was not possible. @remicolletkeepalive
was not possible for Swoole\Coroutine\FastCGI\Client
. @NathanFreemanmax_input_vars
would throw an error, causing the process to restart repeatedly. @NathanFreemanSwoole\Event::wait()
within a coroutine. @matyhtfproc_open
does not support pty in coroutine mode. @matyhtfpdo_sqlite
on PHP 8.3. @NathanFreemanSwoole
. @Appla @NathanFreewardSTDOUT/STDERR
are already closed. @Appla @matyhtfset_tcp_nodelay
configuration. @matyhtfdispatch_func
would cause PHP's internals to throw errors. @NathanFreeman_tsrm_ls_cache
. @jingjingxykGCC 14
. @remicolletSwoole\Http2\Request
. @guandengpgsql
coroutine client. @NathanFreeman$request->server['request_method']
and $request->getMethod()
when HTTP2
is enabled. @matyhtfcontent-type
when uploading files. @matyhtfhttp2
coroutine client. @matyhtfworker_id
property in Swoole\Server
. @cjavadbrotli
in config.m4
. @fundawangSwoole\Http\Response::create
under multi-threading. @matyhtfmacos
environment. @matyhtfSwoole\Http\Response
in multi-threaded mode was not generated separately for each thread. @matyhtf @NathanFreemanFatal error
issue caused by PHP-8.4
's timeout
feature in ZTS mode. @matyhtfexit()
hook
function for PHP-8.4
. @remicolletSwoole\Thread::getNativeId()
did not work in cygwin
. @matyhtfSIGSEGV
in Swoole\Coroutine::getaddrinfo()
method. @matyhtfSwoole\Table
could not be used before the process exited. @matyhtfSwoole\Server::stop()
when using named parameters. @matyhtfSwoole\Thread\Map::toArray()
not copying the key. @matyhtfSwoole\Thread\Map
. @matyhtfsocket structs
. @petkSwoole\Http\Response
. @abnegatefile
operation code across different PHP versions. @NathanFreemanpdo
operation code across different PHP versions. @NathanFreemanSocket::ssl_recv()
. @matyhtfpkg-config
. @NathanFreemanrequest header parsing
. @NathanFreemanfd
lifecycle issues in multi-threading mode. @matyhtfsendfile
. @matyhtfPHP_DEF_HAVE
with AC_DEFINE_UNQUOTED
in config.m4
. @petkheartbeat
, shutdown
, and stop
for the server in multi-threaded mode. @matyhtflibrt
when glibc
version is greater than 2.17. @matyhtfSwoole\Http\Response::write()
. @matyhtfSwoole\Http\Response::write()
can now send HTTP/2 protocol. @matyhtfPHP 8.4
. @matyhtf @NathanFreemanSwoole\Http\Response
. @NathanFreemanSWOOLE_THREAD
supports restarting worker threads. @matyhtfSWOOLE_THREAD
supports starting timers in the Manager
thread. @matyhtfcurl
extension of PHP-8.4
. @matyhtf @NathanFreemanSwoole
code using iouring
. @matyhtf @NathanFreemanSwoole\Coroutine\System::waitSignal()
method to allow listening to multiple signals simultaneously. @matyhtfPHP 8.0
.Swoole\Coroutine\MySQL
coroutine client.Swoole\Coroutine\Redis
coroutine client.Swoole\Coroutine\PostgreSQL
coroutine client.Swoole\Coroutine\System::fread()
, Swoole\Coroutine\System::fwrite()
, and Swoole\Coroutine\System::fgets()
methods.Swoole
支持多线程模式,当php
是zts
模式,编译Swoole
时开启--enable-swoole-thread
时,就能使用多线程模式。Swoole\Thread
。 @matyhtfSwoole\Thread\Lock
。 @matyhtfSwoole\Thread\Atomic
,Swoole\Thread\Atomic\Long
。 @matyhtfSwoole\Thread\Map
,Swoole\Thread\ArrayList
,Swoole\Thread\Queue
。 @matyhtfiouring作为文件异步操作的底层引擎
,安装了liburing
和编译Swoole
时开启--enable-iouring
,file_get_contents
,file_put_contents
,fopen
,fclose
,fread
,fwrite
,mkdir
,unlink
,fsync
,fdatasync
,rename
,fstat
,lstat
,filesize
这些函数的异步操作将会由iouring
实现。 @matyhtf @NathanFreemanBoost Context
版本到1.84。现在,龙芯CPU也能够支持协程了。 @NathanFreemanSwoole\Thread\Map::find()
方法。 @matyhtfSwoole\Thread\ArrayList::find()
方法。 @matyhtfSwoole\Thread\ArrayList::offsetUnset()
方法。 @matyhtfSwoole\Process::getAffinity()
方法。 @matyhtfSwoole\Thread::setName()
方法。 @matyhtfSwoole\Thread::setAffinity()
方法。 @matyhtfSwoole\Thread::getAffinity()
方法。 @matyhtfSwoole\Thread::setPriority()
方法。 @matyhtfSwoole\Thread::getPriority()
方法。 @matyhtfSwoole\Thread::gettid()
方法。iouring
支持多线程轮询模式IORING_SETUP_SQPOLL
。 @NathanFreemaniouring_workers
修改iouring
线程数。 @NathanFreemaniouring_flags
支持修改iouring
工作模式。 @NathanFreemanSwoole\Thead\Barrier
多线程同步屏障。@matyhtfSwoole\Coroutine\Socket::getOption()
支持了TCP_INFO
选项。 @matyhtfSwoole\Client
同步阻塞客户端支持http
代理。 @matyhtfTCP/UDP/Unixsocket
客户端Swoole\Async\Client
。 @matyhtfSwoole\Redis\Server::format
()方法,支持内存零拷贝,支持redis
嵌套结构。 @matyhtfZstd
,只需要在编译Swoole
时加上--enable-zstd
,http
客户端和服务端之间便可使用zstd
来压缩响应或者解码响应。 @NathanFreemanpecl
安装的问题。 @remicolletSwoole\Coroutine\FastCGI\Client
客户端无法设置keepalive。 @NathanFreemanmax_input_vars
时会抛出错误导致进程不断重启的问题。 @NathanFreemanSwoole\Event::wait()
导致的未知问题。 @matyhtfproc_open
在协程化的时候不支持pty的问题。 @matyhtfpdo_sqlite
在PHP8.3会出现段错误的问题。 @NathanFreemanSwoole
时的无用警告。 @Appla @NathanFreemanSTDOUT/STDERR
已经关闭时,底层调用zend_fetch_resource2_ex会抛出错误。 @Appla @matyhtfset_tcp_nodelay
配置。 @matyhtfdispatch_func
,会导致php底层抛出错误的问题。 @NathanFreeman_tsrm_ls_cache
未定义问题。 @jingjingxykGCC 14
编译会导致致命错误。 @remicolletSwoole\Http2\Request
动态属性问题。 @guandengpgsql
协程客户端偶发资源不可用的问题。 @NathanFreemanHTTP2
时,$request->server['request_method']
与 $request->getMethod()
的结果不一致。 @matyhtfcontent-type
。 @matyhtfhttp2
协程客户端的代码错误。 @matyhtfSwoole\Server
缺少属性worker_id
的问题。 @cjavadconfig.m4
有关brotli
错误的问题。 @fundawangSwoole\Http\Response::create
无效。 @matyhtfmacos
环境下编译错误。 @matyhtfSwoole\Http\Response
返回响应时间的静态变量没有各个线程各自生成一份的问题。 @matyhtf @NathanFreemanPHP-8.4
在ZTS模式下的超时
特性引起的Fatal error
问题。 @matyhtfPHP-8.4
的exit()
函数hook
。 @remicolletSwoole\Thread::getNativeId()
在cygwin
无法工作的问题。 @matyhtfSwoole\Coroutine::getaddrinfo()
方法会导致SIGSEGV
的问题。 @matyhtfruntime tcp
模块不支持动态开启SSL加密的问题。 @matyhtfSwoole\Table
的互斥锁无法使用的问题。 @matyhtfSwoole\Server::stop()
执行失败的问题。 @matyhtfSwoole\Thread\Map::toArray()
函数未复制key
导致崩溃的问题。 @matyhtfSwoole\Thread\Map
无法删除嵌套的数字键的问题。 @matyhtfsocket structs
的无用检查。 @petkSwoole\Http\Response
增加对451状态码的支持。 @abnegate文件
操作代码。 @NathanFreemanpdo
操作代码。 @NathanFreemanSocket::ssl_recv()
的代码。 @matyhtfpkg-config
设置依赖库位置。 @NathanFreeman解析请求头
的时候使用动态数组的问题 。 @NathanFreemanfd
的生命周期问题。 @matyhtfsendfile
的相关逻辑。 @matyhtfconfig.m4
中用AC_DEFINE_UNQUOTED
替换PHP_DEF_HAVE
。 @petkheartbeat
,shutdown
和stop
的相关逻辑。 @matyhtfglibc
版本高于2.17时,不需要链接librt
。 @matyhtfhttp
客户端可以接受重复的请求头。 @matyhtfSwoole\Http\Response::write()
。 @matyhtfSwoole\Http\Response::write()
现在可以发送http2
协议。 @matyhtfPHP8.4
。 @matyhtf @NathanFreemansocket
异步写入的能力。 @matyhtfSwoole\Http\Response
。 @NathanFreemansocket
。 @matyhtfServer
多线程模式支持重启工作线程。 @matyhtfServer
多线程模式支持在Manager
线程中开启定时器。 @matyhtfPHP-8.4
的curl
扩展。 @matyhtf @NathanFreemanSwoole
底层使用iouring
的代码。 @matyhtf @NathanFreemanSwoole\Coroutine\System::waitSignal()
方法,允许同时监听多个信号。 @matyhtfPHP 8.0
。Swoole\Coroutine\MySQL
协程客户端。Swoole\Coroutine\Redis
协程客户端。Swoole\Coroutine\PostgreSQL
协程客户端。Swoole\Coroutine\System::fread()
, Swoole\Coroutine\System::fwrite()
和Swoole\Coroutine\System::fgets()
方法You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4