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


_______________________________________________
unloquer mailing list
[email protected]
https://lists.aktivix.org/mailman/listinfo/unloquer

Responder a