# Re: Niente continuationsnÃ¨green threads?

**URL:** <https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903>\
**Category:** IT\
**Created:** [November 7, 2006, 11:01am UTC](https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903 "2006-11-07T11:01:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gabriele\_renzi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e19b73/32.png) [@gabriele\_renzi](https://www.ruby-forum.com/u/gabriele_renzi)\
**Post date:** [November 7, 2006, 11:01am UTC](https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903/1 "2006-11-07T11:01:08Z")

</div>

(scusate il top posting, yahoo mail 2 é tonto…)

Il problema dei green thread é che onestamente, su windows non hanno mai  
funzionato bene, perché select() é rotta e funziona solo con i socket, e  
nessuno ha mai fornito un’implementazione funzionante basata su  
WaitForMultipleObjects() o come si chiama.  
Per cui nel tempo la gente si é sempre piu’ convinta che i green thread  
non vanno bene per scrivere appalicazioni concorrenti. Mah, chissá che ne  
pensano gli erlang’isti.

Onestamente credo che se la gente desse una mano scrivendo codice i  
green thread in ruby2 ci sarebbero. Esattamente come le continuazioni in  
ruby1, un giorno si é svegliato il collega di matz, ha scritto venti righe  
di codice e gli ha detto “ci mettiamo anche questo?”.

## Per quel che riguarda la scomparsa di callcc… io preferisco largamente l’introduzione della classe Frame come era in sydney, che come dici tu rende tutto possibile e oltretutto ha un’interfaccia piu’ comprensibile dall’uomo 🙂

icq: #69488917  
blog it: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)  
blog en: [http://www.riffraff.info](http://www.riffraff.info)

----- Original Message ----  
From: Giovanni C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
To: removed\_email\_address@domain.invalid  
Sent: Thursday, 26 October, 2006 9:55:10 AM  
Subject: [ruby-it] Niente continuationsnègreen threads per Ruby 2.0

> **[Another Year, Another Interpreter](http://headius.blogspot.com/2006/10/another-year-another-interpreter.html)**
>
> It's been approximately a year since I launched into my first redesign of the JRuby interpreter engine, and a lot has happened since then. W...

Sembra proprio che Ruby 2.0 non avrà nè continuations nè green threads.

Sulle continuazioni non mi pronuncio (se c’è la possibilità di  
manipolare lo stack di attivazione dei metodi dal codice Ruby, allora è  
possibile implementare le continuazioni senza dover toccare la VM).  
Ma il passaggio ai thread nativi mi sembra un errore: quali sono i  
vantaggi dell’abbandonare un modello di threading uniforme che tra  
l’altro permette cose che i modelli nativi non offrono?  
Non sarebbe meglio tenere i green threads ed supportare i thread nativi  
tramite una libreria?

```
Giovanni

```

* * *

Ml mailing list  
removed\_email\_address@domain.invalid  
[http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

Send instant messages to your online friends

> **[Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos](https://www.yahoo.com/)**
>
> Latest news coverage, email, free stock quotes, live scores and video are just the beginning. Discover more every day at Yahoo!

---

<div class="post-metadata">

**Author:** ![gabriele\_renzi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e19b73/32.png) [@gabriele\_renzi](https://www.ruby-forum.com/u/gabriele_renzi)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903/2 "2006-11-07T11:03:57Z")

</div>

> Il problema dei green thread é che onestamente, su windows non hanno mai funzionato bene, perché select() é rotta e funziona solo con i socket, e nessuno ha mai fornito un’implementazione funzionante basata su WaitForMultipleObjects() o come si chiama.  
> Per cui nel tempo la gente si é sempre piu’ convinta che i green thread non vanno bene per scrivere appalicazioni concorrenti. Mah, chissá che ne pensano gli erlang’isti.

Non credo che gli importi moltissimo di windows e i suoi problemi;-)

Un altro modello interessante simile ai green threads sono gli eventi  
come quelli di Tcl e Twisted di Python. Sono abbastanza comodi da  
usare anche se non ti danno una granularita` altissima - puoi bloccare tutto il process facilmente se hai dei calcoli pesanti in un event handler. Ma dall'altro canto, il modello mentale e` molto meno  
stressante rispetto ai threads.

–  
David N. Welton

- [David N. Welton](http://www.dedasys.com/davidw/)

Linux, Open Source Consulting

- [http://www.dedasys.com/](http://www.dedasys.com/)

---

<div class="post-metadata">

**Author:** ![gabriele\_renzi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e19b73/32.png) [@gabriele\_renzi](https://www.ruby-forum.com/u/gabriele_renzi)\
**Post date:** [November 7, 2006, 11:04am UTC](https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903/3 "2006-11-07T11:04:15Z")

</div>

Il giorno sab, 04/11/2006 alle 11.37 +0000, gabriele renzi ha scritto:

> (scusate il top posting, yahoo mail 2 Ã© tonto…)
> 
> Il problema dei green thread Ã© che onestamente, su windows non hanno  
> mai funzionato bene, perchÃ© select() Ã© rotta e funziona solo con i  
> socket, e nessuno ha mai fornito un’implementazione funzionante  
> basata su WaitForMultipleObjects() o come si chiama.  
> Per cui nel tempo la gente si Ã© sempre piu’ convinta che i green  
> thread non vanno bene per scrivere appalicazioni concorrenti.  
> Mah, chissÃ¡ che ne pensano gli erlang’isti.

Dalle ricerche che ho fatto, direi che gli erlang’isti pensano che green  
threads + select siano piÃ¹ che sufficienti 😉  
E come dice David non credo che si facciano molte questioni per i  
problemi di Windows.

> Onestamente credo che se la gente desse una mano scrivendo codice  
> i green thread in ruby2 ci sarebbero. Esattamente come le continuazioni  
> in ruby1, un giorno si Ã© svegliato il collega di matz, ha scritto venti  
> righe di codice e gli ha detto “ci mettiamo anche questo?”.

Heh. Avessi tempo e conoscenze…

> Per quel che riguarda la scomparsa di callcc… io preferisco largamente  
> l’introduzione della classe Frame come era in sydney, che come dici tu  
> rende tutto possibile e oltretutto ha un’interfaccia piu’ comprensibile  
> dall’uomo 🙂

Non conoscevo Sydney; grazie!

```
Giovanni
```

---

<div class="post-metadata">

**Author:** ![gabriele\_renzi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e19b73/32.png) [@gabriele\_renzi](https://www.ruby-forum.com/u/gabriele_renzi)\
**Post date:** [November 7, 2006, 11:05am UTC](https://www.ruby-forum.com/t/re-niente-continuationsna-green-threads/74903/4 "2006-11-07T11:05:50Z")

</div>

On 11/5/06, Giovanni C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Dalle ricerche che ho fatto, direi che gli erlang’isti pensano che green  
> threads + select siano più che sufficienti 😉  
> E come dice David non credo che si facciano molte questioni per i  
> problemi di Windows.

Il fatto che il linguaggio abbia la stessa semantica su diverse  
piattaforme a me invece sembra importante. Ad esempio, io vorrei  
poter sviluppare su unix e installare su Windows.

Il discorso della select che su Windows funziona solo con le socket  
purtroppo è vero. Per quanto ricordo, scrivere codice I/O asincrono  
su win è veramente complicato (ovviamente!) e costringerebbe gli  
implementatori a scrivere codice completamente diverso per le due  
piattaforme.

> > Onestamente credo che se la gente desse una mano scrivendo codice  
> > i green thread in ruby2 ci sarebbero. Esattamente come le continuazioni  
> > in ruby1, un giorno si é svegliato il collega di matz, ha scritto venti  
> > righe di codice e gli ha detto “ci mettiamo anche questo?”.
> 
> Heh. Avessi tempo e conoscenze…

E’ un buon tema per una tesi di laurea… sotto ragazzi!

Matteo
