Hi Thomas, These are now on the cyrus-imapd-2.4 git branch. Thanks for back porting them :)
ellie On Fri, Sep 25, 2015, at 10:23 PM, Thomas Jarosch wrote: > The following changes since commit > e302cae2f208741c98fa73e6663963c9343ed744: > > mailbox: fix lock management over rename (2015-07-20 03:27:51 +1000) > > are available in the git repository at: > > https://github.com/thomasjfox/cyrus-imapd.git > imap-idle-fixes-2.4-backport > > for you to fetch changes up to fcf7797003ae4c820c255828be2f89b52ca9953e: > > idled: Add missing signals_poll() call (2015-09-25 10:23:42 +0200) > > > Additional note: The source code differences between 2.4 and 2.5 > on the files imap/idle*. are pretty minimal now. > > The new code is running on two production level servers with idled > enabled. > More testing welcome. > > ---------------------------------------------------------------- > Bron Gondwana (7): > idle: shut down on SIGQUIT > idle: don't lose socket after first use > idle: return 0 if idle not enabled > idled: fix broken message formatting > idle: don't fork if running as a daemon > idle: use NOWAIT if possible > idle: don't access mailboxes.db directly, use allmbox > > Greg Banks (23): > idled: better signal handling > idle: whitespace cleanup > idle: rename messages IDLE_FOO -> IDLE_MSG_FOO > idle: remove "freelist" ientry memory management > idle: some const correctness > idle: better function names in idled > idle: rename idle_data_t -> idle_message_t > idle: move message send/recv into a common file > idle: centralise AF_UNIX socket creation > idle: rename notify_sock -> idle_sock > idle: unlink local AF_UNIX socket when done > idle: don't use signals, use AF_UNIX dgrams > idled: use library function shutdown_file() > idle: don't do FD_ISSET(-1,) it's unhelpful > idled: fork after creating socket > [IRIS-1831] Improve logging in idle code. > [IRIS-1831] don't syslog on ENOENT from idle_send > Bug 3648 - lib/signals.c handles multiple signals > lib/signals.c: better signal handling > signals.c doesn't use SA_RESTART for SIGTERM > Whitespace cleanup in signals.c > idle: close SIGTERM/select race > Also use signals_select() in prot_*() functions > > Max Matveev (1): > One copy of common signal processing is enough > > Thomas Jarosch (3): > Clear sigaction struct before passing it to the kernel > autoconf: Check for pselect() > idled: Add missing signals_poll() call > > configure.in | 2 +- > imap/Makefile.in | 14 +- > imap/global.c | 6 + > imap/idle.c | 295 > ++++++++++++++++++++++-------------------- > imap/idle.h | 36 ++++-- > imap/idled.c | 307 > +++++++++++++++++++------------------------- > imap/idlemsg.c | 215 +++++++++++++++++++++++++++++++ > imap/{idled.h => idlemsg.h} | 45 +++++-- > imap/imapd.c | 65 +++++----- > imap/lmtpd.c | 4 +- > imap/nntpd.c | 4 +- > imap/pop3d.c | 4 +- > imap/signals.c | 115 ----------------- > imap/signals.h | 54 -------- > lib/prot.c | 6 +- > lib/signals.c | 130 ++++++++++++++++--- > lib/signals.h | 5 + > 17 files changed, 729 insertions(+), 578 deletions(-) > create mode 100644 imap/idlemsg.c > rename imap/{idled.h => idlemsg.h} (71%) > delete mode 100644 imap/signals.c > delete mode 100644 imap/signals.h >