[un/loquer] feeds

Federico Lopez fede2001 en hotmail.com
Vie Dic 18 11:31:01 UTC 2015


On 12/17/2015 08:14 PM, Fabio Barone wrote:
>
> Gracias fede, aunque no veo como podría aplicarlo a lo que necesito 
> hacer :)
>
pues estas páginas modernas de una sola vista llena de flujos que se 
renuevan puede tener algunas cosas en común con la programación de hilos 
que son concurrentes, cada parte (notificaciones, nuevas publicaciones, 
mensajes, etc) supongo que escuchan en paralelo y van reaccionando a 
partir de eventos, o ciclos de tiempo, entonces pensé que se podría 
sacar ideas de la arquitectura de esos lenguajes que manejan hilos 
simultáneos.


> Pero otra cosa, como maneja chuck esos loops?
>
> Es que los dos hacen while (true), y en un lenguaje 'tradicional', 
> estaría solo uno a la vez ejecutándose, al otro nunca entraría porque 
> no se sale nunca del primero....
>

Las funciones se ejecutan en paralelo, sin bloquearse mutuamente, 
parecido a Node.
>
> Hay algún keyword como yield o algo que libera el procesador? O hace 
> un scheduling interno?
>

Eso! tiene un scheduling  interno ( como podríamos traducir eso?, como 
un agente que distribuye quién hace qué cuando, Agendador? ) y se 
encarga de ir ejecutando las cosas pendientes en la cola sample por 
sample! y también administra cuales funciones son hijas de quien, porque 
una función X puede disparar otro función paralela Y donde Y quedaría 
registrada como hija de X, y si muere X también mata a Y (un poco bíblico).

Acá una diagrama del algoritmo 
http://jardincosmico.net/files/unloquer/Screenshot_from_2015-12-18_06:00:24.png

Y otro diagrama ya en general de la arquitectura en tiempo de ejecución  
http://jardincosmico.net/files/unloquer/chuck_runtime.png

En la sección 3.4 de su Tesis, Ge Wang el principal escritor de ChucK, 
explica el diseño del sistema y su implementación: 
http://www.cs.princeton.edu/~gewang/thesis.pdf




Más información sobre la lista de distribución unloquer