<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/bd10dee45041b96d7e7ba50c817e1e27bbb908c3">https://github.com/macports/macports-ports/commit/bd10dee45041b96d7e7ba50c817e1e27bbb908c3</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit bd10dee45041b96d7e7ba50c817e1e27bbb908c3
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Tue Feb 6 23:14:30 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> iwnet: update to 2024.02.06, drop a temporary patch
</span>---
net/iwnet/Portfile | 20 ++--
...poller_poll_in_thread-now-waits-poller-th.patch | 101 ---------------------
2 files changed, 6 insertions(+), 115 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/iwnet/Portfile b/net/iwnet/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c08d345cd2c..7a0d9703094 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/iwnet/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/iwnet/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,8 +8,8 @@ PortGroup legacysupport 1.1
</span> # strndup, clock_gettime
legacysupport.newest_darwin_requires_legacy 15
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup Softmotions iwnet 81b6ad3d69ff3654bdad04478666edbf4d3f5d3f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version 2024.01.27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup Softmotions iwnet aae1b8b52b1ac37d0d521939ebac17b5bdfbb060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 2024.02.06
</span> revision 0
categories net devel
license MIT
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,19 +19,11 @@ long_description {*}${description} providing websockets client/server, SSL, \
</span> reverse proxy and routing.
# Due to: https://github.com/Softmotions/iwnet/issues/5
platforms {darwin > 9}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 c4c0ce4688fad27a03135c597eb42f5a9d7068d7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 418bf8c2de707559fd21ddb6474c989377de9793eed3bb993bd66b429ad0c94d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 824035
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 25ee3b969ad2b6dc09abbd31e323145f356cab58 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 2f432ad82b0ce770e40fbe34917a1b9d22478067cc64e2b33eabb536d53f9955 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 824248
</span> github.tarball_from archive
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Temporary fix reverting a breaking commit:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://github.com/Softmotions/iwnet/commit/414ce1adc6484c6518ac8587107ff2905328f8de
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# FIXME: add an implementation for pthread_barrier. See also:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://github.com/ademakov/DarwinPthreadBarrier
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://github.com/envy/knx2influx/issues/20
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://github.com/pmwkaa/ioarena/issues/10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 0001-Revert-iwn_poller_poll_in_thread-now-waits-poller-th.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> depends_lib-append port:iowow
compiler.c_standard 2011
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,7 +33,7 @@ configure.args-append \
</span> -DBUILD_TESTS:BOOL=ON
# https://github.com/Softmotions/iwnet/issues/6
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}] && ${configure.build_arch} in [list arm i386 ppc]} {
</span> configure.ldflags-append \
-latomic
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/iwnet/files/0001-Revert-iwn_poller_poll_in_thread-now-waits-poller-th.patch b/net/iwnet/files/0001-Revert-iwn_poller_poll_in_thread-now-waits-poller-th.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 3eb3da8b091..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/iwnet/files/0001-Revert-iwn_poller_poll_in_thread-now-waits-poller-th.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,101 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From ca10b1e678e651f62afe67c6abd9c1d9f44daf9f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 4 Feb 2024 15:06:38 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Revert "* iwn_poller_poll_in_thread() now waits poller thread
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- starts"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit 414ce1adc6484c6518ac8587107ff2905328f8de.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/poller/iwn_poller.c | 31 +++++++++----------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 9 insertions(+), 22 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git src/poller/iwn_poller.c src/poller/iwn_poller.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a8f4627..5cf268c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/poller/iwn_poller.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/poller/iwn_poller.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -56,10 +56,8 @@ struct iwn_poller {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- IWHMAP *slots;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- char *thread_name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_mutex_t mtx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_barrier_t _barrier_poll; ///< Poll-in-thread barrier
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_barrier_t *barrier_poll;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint32_t flags; ///< Poller mode flags. See iwn_poller_flags_set()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pthread_mutex_t mtx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ uint32_t flags; ///< Poller mode flags. See iwn_poller_flags_set()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- volatile bool stop;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- volatile bool housekeeping; ///< CAS barrier for timeout cleaner
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -129,7 +127,7 @@ IW_INLINE void _rw_fd_unsubscribe(struct poller_slot *s) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!(s->flags & SLOT_UNSUBSCRIBED)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- s->flags |= SLOT_UNSUBSCRIBED;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct kevent ev[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- { s->fd, EVFILT_READ, EV_DELETE },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ { s->fd, EVFILT_READ, EV_DELETE },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { s->fd, EVFILT_WRITE, EV_DELETE },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kevent(s->poller->fd, ev, sizeof(ev) / sizeof(ev[0]), 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -376,11 +374,11 @@ static void _timer_ready_impl(struct iwn_poller *p) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #elif defined(IWN_KQUEUE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct kevent ev = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- .ident = p->fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ .ident = p->fd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .filter = EVFILT_TIMER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- .flags = EV_ADD | EV_ENABLE | EV_CLEAR | EV_ONESHOT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ .flags = EV_ADD | EV_ENABLE | EV_CLEAR | EV_ONESHOT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .fflags = NOTE_SECONDS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- .data = timeout_next - ctime,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ .data = timeout_next - ctime,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (kevent(p->fd, &ev, 1, 0, 0, 0) == -1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- iwrc rc = iwrc_set_errno(IW_ERROR_ERRNO, errno);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -520,7 +518,7 @@ static iwrc _poller_timeout_add(struct poller_slot *s) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (timerfd_settime(s->fd, 0, &(struct itimerspec) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .it_value = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- .tv_sec = s->timeout / 1000,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ .tv_sec = s->timeout / 1000,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .tv_nsec = (int64_t) (s->timeout % 1000) * 1000000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }, 0) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -683,9 +681,9 @@ void iwn_poller_poke(struct iwn_poller *p) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct kevent ev[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { p->fd, EVFILT_USER, EV_ADD | EV_ONESHOT },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- { p->fd, EVFILT_USER, 0, NOTE_TRIGGER }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ { p->fd, EVFILT_USER, 0, NOTE_TRIGGER }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- { p->fd, EVFILT_USER, EV_TRIGGER, 0 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ { p->fd, EVFILT_USER, EV_TRIGGER, 0 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #error "Either NOTE_TRIGGER or EV_TRIGGER is required."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -958,16 +956,9 @@ iwrc iwn_poller_poll_in_thread(struct iwn_poller *p, const char *thr_name, pthre
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (thr_name) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- p->thread_name = strdup(thr_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- RCN(finish, pthread_barrier_init(&p->_barrier_poll, 0, 2));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- p->barrier_poll = &p->_barrier_poll;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RCN(finish, pthread_create(out_thr, 0, _poll_worker, p));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_barrier_wait(p->barrier_poll);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- finish:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (p->barrier_poll) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_barrier_destroy(p->barrier_poll);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- p->barrier_poll = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return rc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -998,10 +989,6 @@ void iwn_poller_poll(struct iwn_poller *p) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- p->stop = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (p->barrier_poll) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- pthread_barrier_wait(p->barrier_poll);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (!p->stop) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined(IWN_KQUEUE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int nfds = kevent(p->fd, 0, 0, event, max_events, 0);
</span></pre><pre style='margin:0'>
</pre>