Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

En los ejercicios que esperan timeout se congela temporalmente la UI al darle play #128

Open
afska opened this issue Oct 3, 2018 · 4 comments
Labels

Comments

@afska
Copy link
Collaborator

afska commented Oct 3, 2018

Esto viene de #127:

  1. La UI se congela al correr un ejercicio con loops infinitos

Esto lo estuve viendo pero no es tan fácil, la forma de solucionarlo para mí es con Web Workers pero hay varios temas a solucionar:

  • No pueden acceder al scope global, ni a ningún dato que no se pase mediante .postMessage(...) que solo admite datos planos y no objetos con comportamiento.
  • Pueden importar scripts (en este caso el código del intérprete) pero solo mediante un importScripts que los baja de la red, y esto desde el runner se complica porque corren dentro de labo
  • Habría que hacer un refactor grande en gobstones-code-runner para hacer el parseo e interpretación en el mismo paso y que la interfaz sea siempre asincrónica

Igualmente lo veo posible, pero es una tarea de varios días así que lo cargué en un issue aparte.

@flbulgarelli
Copy link
Member

Consulta, si hubiera un callback o evento que te permitiera ejecutar algo por cada instrucción del intérprete o cada x instrucciones, no podríamos actualizar la ui ahí?

@flbulgarelli
Copy link
Member

Es decir, en lugar de usar threads, multiplexar

@afska
Copy link
Collaborator Author

afska commented Nov 28, 2018

Sorry vi esto re tarde.

Sí, sería mucho mejor. Pero el intérprete actual no admite ese callback y no sé qué tan complicado es agregarlo. Hoy por hoy, ejecuta todo y devuelve una lista de snapshots de los estados intermedios por los que pasó el tablero

@flbulgarelli
Copy link
Member

Pausando este issue dado que depende de cambios estructurales en Gobstones Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants