From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.6 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: yahns-public@yhbt.net Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 35631205EA for ; Sun, 13 Dec 2015 02:37:42 +0000 (UTC) From: Eric Wong To: yahns-public@yhbt.net Subject: [PATCH] README: updates for kqueue Date: Sun, 13 Dec 2015 02:37:42 +0000 Message-Id: <20151213023742.24968-1-e@80x24.org> List-Id: It's been there long enough and kqueue itself hasn't changed. In fact, IIRC the entire design of yahns (for another server in late 2011) probably came about because of the name "kqueue"... --- README | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README b/README index 1219a7e..56b466f 100644 --- a/README +++ b/README @@ -21,8 +21,8 @@ Features * supports streaming responses with lazy buffering for slow clients * optional streaming input for fast clients * able to host multiple applications with different settings -* uses epoll to scale to many idle connections -* abuses epoll as a load balancer between threads inside a process +* uses epoll/kqueue to scale to many idle connections +* abuses epoll/kqueue as a load balancer between threads within a process * optional multi-process support (in addition to threads) * fairly balances new clients between multiple processes (on Linux) @@ -44,8 +44,8 @@ Supported Platforms yahns is developed primarily for modern GNU/Linux systems. -We have experimental support kqueue on FreeBSD (and possibly OpenBSD and -NetBSD). Non-Free systems/dependencies will never be supported. +We support kqueue on FreeBSD (and possibly OpenBSD and NetBSD). +Non-Free systems/dependencies will never be supported. Supported Ruby implementations: * (Matz) Ruby 2.0.0 and later (we develop (and host our website) on trunk) @@ -101,7 +101,7 @@ multiple threads. * two classes of long-lived, persistent threads 1. blocking acceptors 2. non-blocking event loop workers -* epoll acts as a queue (by using one-shot notifications) +* epoll (or kqueue) acts as a queue (by using one-shot notifications) * acceptors accept new clients and put them in the epoll "queue" * workers pull clients off the queue, rearming them to epoll on EAGAIN -- EW