From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-2.9 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_PASS,T_RP_MATCHES_RCVD shortcircuit=no autolearn=no autolearn_force=no version=3.4.0 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id A62A91F404 for ; Mon, 29 Jan 2018 04:42:58 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id BE98F120A39; Mon, 29 Jan 2018 13:42:56 +0900 (JST) Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by neon.ruby-lang.org (Postfix) with ESMTPS id 21742120934 for ; Mon, 29 Jan 2018 13:42:51 +0900 (JST) Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 2F2401F404; Mon, 29 Jan 2018 04:42:49 +0000 (UTC) Date: Mon, 29 Jan 2018 04:42:49 +0000 From: Eric Wong To: ruby-core@ruby-lang.org Message-ID: <20180129044249.GA19667@starla> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-ML-Name: ruby-core X-Mail-Count: 85204 Subject: [ruby-core:85204] Re: [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" sam.saffron@gmail.com wrote: > I am not a huge fan of the name threadlet, it just does not sound right. Is "Task" better? Or "CoThread" (like "coroutine"). Actually I don't like "CoThread" much, but "Task" is short and a somewhat popular name: https://en.wikipedia.org/wiki/Task_(computing) > What if a new construct is introduced: > > pool = ThreadPool.new(concurrency: 100, max_workers: 5 # optional) I really don't like that. It's too much up-front cost to having to declare a pool ahead-of-time. One thing I love about Fiber/Thread/fork is they can be used anywhere, even when deep inside libraries. That said, glibc has internal caching of thread stacks, and Ruby also caches Fiber stacks internally, but they're completely transparent to the user. There's also code for an internal Thread cache for Ruby, but it's broken with fork and disabled, atm