Il est généralement admis qu'en Ruby on ne peut pas faire d'appels bloquants sur une ressource externe à cause des green thread. Pourtant, j'ai remarqué que les threads Ruby se comportaient très bien quand un autre attendaient sur un appel à "Kernel.select" (polling sur des sockets). Je ne sais pas trop par quelle magie cela fonctionne, mais ça ouvre une porte à s'affranchir du problème que j'avais lors des premières versions de Férus. Je vais donc pouvoir faire un thread OS qui s'occupe de copier la donnée dans une socket qui sera lue avec select par Ruby. C'est très hacké, mais ça devrait marcher avec relativement peu d'overhead (une ou deux copies). Je vais tacher de faire une proof of concept et puis après qui sait? une lib? le soucis d'une librairie c'est qu'il faut s'occuper à la place de l'utilisateur de tous les évènements qui peuvent arriver sur une socket. Bref, c'est bizarre, mais ça pourrait me débloquer, et donc permettre d'éviter de griller du processeur pour rien (ce qui rendait les jeu en Férus encore plus lent que Ruby ne peut le permettre).