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

Integrate Riot #8

Open
omnisci3nce opened this issue Mar 29, 2024 · 2 comments
Open

Integrate Riot #8

omnisci3nce opened this issue Mar 29, 2024 · 2 comments

Comments

@omnisci3nce
Copy link
Owner

The underlying scheduler and unit of concurrency for Genie will be Riot and its actor model respectively.

Some thoughts off the top of my head:

  • Effects i.e. IO or CPU-bound tasks should be able to be handled asynchronously by putting them on a lightweight ephemeral process from Riot, and upon completion push a result into some sort of MutationQueue that will be drained on the main thread's event loop. This keeps the main model thread safe but allows us to utilise multiple cores.
@omnisci3nce
Copy link
Owner Author

Counter point, does genie itself need to be running from within Riot? Would it perhaps be better to simpltyrun genie as a process within the user's Riot.run which would mean it would not be tied to any one scheduler.

@omnisci3nce
Copy link
Owner Author

Would programming against https://github.com/ocaml-multicore/picos make it scheduler agnostic? Can we use that to replace async runtimes later on? Is there any point to that or is it meaningless abstraction and work?

All good questions.

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

No branches or pull requests

1 participant