[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