Index: head/devel/pecl-swoole/Makefile =================================================================== --- head/devel/pecl-swoole/Makefile (revision 438920) +++ head/devel/pecl-swoole/Makefile (revision 438921) @@ -1,30 +1,30 @@ # Created by: vanilla@ # $FreeBSD$ PORTNAME= swoole -PORTVERSION= 1.9.8 +PORTVERSION= 1.9.9 CATEGORIES= devel net MAINTAINER= vanilla@FreeBSD.org COMMENT= Asynchronous & concurrent & distributed networking framework LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USES= execinfo php:pecl ssl CFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib USE_PHP= pcre OPTIONS_DEFINE= HTTP2 REDIS RING_BUFFER SOCKETS HTTP2_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 HTTP2_CONFIGURE_ON= --enable-http2 --enable-openssl REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis REDIS_CONFIGURE_ON= --enable-async-redis RING_BUFFER_DESC= Use ring buffer pool RING_BUFFER_CONFIGURE_ON= --enable-ringbuffer SOCKETS_USE= PHP=sockets:build SOCKETS_DESC= Use native php sockets extension SOCKETS_CONFIGURE_ON= --enable-sockets .include Index: head/devel/pecl-swoole/distinfo =================================================================== --- head/devel/pecl-swoole/distinfo (revision 438920) +++ head/devel/pecl-swoole/distinfo (revision 438921) @@ -1,3 +1,3 @@ -TIMESTAMP = 1489676691 -SHA256 (PECL/swoole-1.9.8.tgz) = 6a5522de5af54b35b7fd615776e6aeb03378bd196bb75fa9703b1c5edfa38e47 -SIZE (PECL/swoole-1.9.8.tgz) = 566294 +TIMESTAMP = 1492612480 +SHA256 (PECL/swoole-1.9.9.tgz) = a9a45e5492382b055a53c80dd439602b4a150cd32d74c0181147db38cf2fdabc +SIZE (PECL/swoole-1.9.9.tgz) = 575967 Index: head/devel/pecl-swoole/files/patch-config.m4 =================================================================== --- head/devel/pecl-swoole/files/patch-config.m4 (revision 438920) +++ head/devel/pecl-swoole/files/patch-config.m4 (revision 438921) @@ -1,11 +1,11 @@ ---- config.m4.orig 2017-02-24 07:21:23 UTC +--- config.m4.orig 2017-04-18 09:30:04 UTC +++ config.m4 -@@ -232,7 +232,7 @@ if test "$PHP_SWOOLE" != "no"; then +@@ -250,7 +250,7 @@ if test "$PHP_SWOOLE" != "no"; then AC_CHECK_LIB(c, poll, AC_DEFINE(HAVE_POLL, 1, [have poll])) AC_CHECK_LIB(c, sendfile, AC_DEFINE(HAVE_SENDFILE, 1, [have sendfile])) AC_CHECK_LIB(c, kqueue, AC_DEFINE(HAVE_KQUEUE, 1, [have kqueue])) - AC_CHECK_LIB(c, backtrace, AC_DEFINE(HAVE_EXECINFO, 1, [have execinfo])) + AC_CHECK_LIB(execinfo, backtrace, AC_DEFINE(HAVE_EXECINFO, 1, [have execinfo])) AC_CHECK_LIB(c, daemon, AC_DEFINE(HAVE_DAEMON, 1, [have daemon])) AC_CHECK_LIB(c, mkostemp, AC_DEFINE(HAVE_MKOSTEMP, 1, [have mkostemp])) AC_CHECK_LIB(c, inotify_init, AC_DEFINE(HAVE_INOTIFY, 1, [have inotify])) Index: head/devel/pecl-swoole/files/patch-src_network_ReactorThread.c =================================================================== --- head/devel/pecl-swoole/files/patch-src_network_ReactorThread.c (nonexistent) +++ head/devel/pecl-swoole/files/patch-src_network_ReactorThread.c (revision 438921) @@ -0,0 +1,117 @@ +--- src/network/ReactorThread.c.orig 2017-04-20 02:12:07 UTC ++++ src/network/ReactorThread.c +@@ -1263,7 +1263,6 @@ int swReactorThread_dispatch(swConnectio + #ifdef SW_USE_RINGBUFFER + swServer *serv = SwooleG.serv; + swReactorThread *thread = swServer_get_thread(serv, SwooleTG.id); +- int target_worker_id = swServer_worker_schedule(serv, conn->fd); + + swPackage package; + package.length = length; +@@ -1271,11 +1270,11 @@ int swReactorThread_dispatch(swConnectio + + task.data.info.type = SW_EVENT_PACKAGE; + task.data.info.len = sizeof(package); +- task.target_worker_id = target_worker_id; + +- //swoole_dump_bin(package.data, 's', buffer->length); + memcpy(package.data, data, package.length); + memcpy(task.data.data, &package, sizeof(package)); ++ ++ task.target_worker_id = swServer_worker_schedule(serv, conn->fd, &task.data); + + //dispatch failed, free the memory. + if (factory->dispatch(factory, &task) < 0) +@@ -1335,92 +1334,6 @@ int swReactorThread_dispatch(swConnectio + return SW_OK; + } + +-#if 0 +-int swReactorThread_dispatch_array_buffer(swReactorThread *thread, swConnection *conn) +-{ +- swDispatchData task; +- swFactory *factory = SwooleG.factory; +- +- task.data.info.fd = conn->fd; +- task.data.info.from_id = conn->from_id; +- +- swBuffer *buffer = conn->in_buffer; +- swBuffer_trunk *trunk = swBuffer_get_trunk(buffer); +- +-#ifdef SW_USE_RINGBUFFER +- swServer *serv = SwooleG.serv; +- uint16_t target_worker_id = swServer_worker_schedule(serv, conn->fd); +- swPackage package; +- +- package.length = 0; +- package.data = swReactorThread_alloc(thread, buffer->length); +- +- task.data.info.type = SW_EVENT_PACKAGE; +- +- while (trunk != NULL) +- { +- task.data.info.len = trunk->length; +- memcpy(package.data + package.length, trunk->store.ptr, trunk->length); +- package.length += trunk->length; +- +- swBuffer_pop_trunk(buffer, trunk); +- trunk = swBuffer_get_trunk(buffer); +- } +- task.data.info.len = sizeof(package); +- task.target_worker_id = target_worker_id; +- memcpy(task.data.data, &package, sizeof(package)); +- //swWarn("[ReactorThread] copy_n=%d", package.length); +- //dispatch failed, free the memory. +- if (factory->dispatch(factory, &task) < 0) +- { +- thread->buffer_input->free(thread->buffer_input, package.data); +- } +- else +- { +- return SW_OK; +- } +-#else +- int ret; +- task.data.info.type = SW_EVENT_PACKAGE_START; +- task.target_worker_id = -1; +- +- /** +- * lock target +- */ +- SwooleTG.factory_lock_target = 1; +- +- while (trunk != NULL) +- { +- task.data.info.fd = conn->fd; +- task.data.info.len = trunk->length; +- memcpy(task.data.data, trunk->store.ptr, task.data.info.len); +- //package end +- if (trunk->next == NULL) +- { +- task.data.info.type = SW_EVENT_PACKAGE_END; +- } +- ret = factory->dispatch(factory, &task); +- //TODO: 处理数据失败,数据将丢失 +- if (ret < 0) +- { +- swWarn("factory->dispatch() failed."); +- } +- swBuffer_pop_trunk(buffer, trunk); +- trunk = swBuffer_get_trunk(buffer); +- +- swTrace("send2worker[trunk_num=%d][type=%d]", buffer->trunk_num, task.data.info.type); +- } +- /** +- * unlock +- */ +- SwooleTG.factory_target_worker = -1; +- SwooleTG.factory_lock_target = 0; +- +-#endif +- return SW_OK; +-} +-#endif +- + void swReactorThread_free(swServer *serv) + { + int i; Property changes on: head/devel/pecl-swoole/files/patch-src_network_ReactorThread.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property