From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,115bda8caeda5fa4 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.199.202 with SMTP id jm10mr735936pbc.34.1315902650767; Tue, 13 Sep 2011 01:30:50 -0700 (PDT) Path: m9ni5238pbd.0!nntp.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!feedme.ziplink.net!news.swapon.de!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: Does GNAT support a thread-free RTS? Date: Tue, 13 Sep 2011 09:30:50 +0100 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Injection-Info: mx04.eternal-september.org; posting-host="dFCm8HWntFqmDIilBLqEJQ"; logging-data="12749"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/6B5dxo/rvlh1pVlWdv5lnyj/6x2SOK1g=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (darwin) Cancel-Lock: sha1:MpkW64kioe35LE2aOaWbs14V4zI= sha1:SCV7iGpAoMxaEgZ1FM0lzngaLrI= Xref: news1.google.com comp.lang.ada:17939 Content-Type: text/plain; charset=us-ascii Date: 2011-09-13T09:30:50+01:00 List-Id: Simon Wright writes: > It used to be that you could configure GNAT to use a tasking RTS that > didn't use threads; tasks were scheduled entirely within the RTS. I > think these may be called 'green threads'[1]. Of course, this meant that > blocking on I/O would block the whole program, but for some purposes it > might be ideal. > > I don't see any trace of this in FSF GCC; has it gone for good? > > [1] http://en.wikipedia.org/wiki/Green_threads My prompt for asking this was a colleague who was used to Erlang and was complaining that GNAT's use of OS threads meant he would have to change his design mindset to not use thousands of tasks (Erlang processes). I believe Scala is similar. I believe that Erlang allows you to classify some threads as maybe-io-bound.