riot
riot copied to clipboard
An actor-model multi-core scheduler for OCaml 5 🐫
Some of the different ways to shutdown the application and processes. - [ ] `*.stop` - [ ] on sigterm - [ ] call and wait for `terminate` callbacks (if...
When running on a large number of cores, the current process stealing starts dead-locking schedulers and shows a few other bugs: * a process gets queued up in several schedulers,...
Hey, I'm running into problems using this in a project that also depends on https://github.com/janestreet/core (`inconsistent assumptions over interface for Core__Ref`). Changing the riot files to reference `riot.core` doesn't fix...
At the moment we are exposing our internal "Dashmap" as a Hashmap that should be prefered in userland Riot programs for concurrent access. Sadly, this Hashmap is far from ideal...
In many cases we want to execute some work that does not play well with Riot's scheduling, that wouldn't play well with work-stealing, that needs to use libraries that don't...
Having something like [Erlang's process dictionary](https://www.erlang.org/doc/reference_manual/processes#process-dictionary) would be useful. Maybe with API like [Eio.Fiber.with_binding](https://ocaml-multicore.github.io/eio/eio/Eio/Fiber/index.html#fiber-local-variables) or [Lwt.with_value](https://ocsigen.org/lwt/latest/api/Lwt#VALwith_value).
At the moment refs are used in a few places like Mint Tea but there's no good explanation of what they are. We should add a little example and document...
At the moment only TCP sockets are nicely supported, but I've had folks reach out with UDP use-cases so it'd be a good idea to at least have basic support...
Would be useful to have a little File module to read/write files in a scheduler-friendly way. In short, we would need a module _like_ `Net.Socket` with functions like: * `File.open...
- [ ] [`handle_cast`](https://www.erlang.org/doc/man/gen_server#Module:handle_cast-2) handles async messages to the genserver - [ ] [`handle_info`](https://www.erlang.org/doc/man/gen_server#Module:handle_info-2) handles messages from other processes, self, ... - [ ] [`handle_continue`](https://www.erlang.org/doc/man/gen_server#Module:handle_continue-2) called immediately after previous callback,...