Skip to content

Initial windows scheduler#490

Closed
patricoferris wants to merge 1 commit into
ocaml-multicore:mainfrom
patricoferris:windows
Closed

Initial windows scheduler#490
patricoferris wants to merge 1 commit into
ocaml-multicore:mainfrom
patricoferris:windows

Conversation

@patricoferris

Copy link
Copy Markdown
Collaborator

As suggested in #125, this is just the mock backend scheduler placed into the Windows IOCP backend so we can try to do this incrementally. I'm seeing if I can get a reliable (if horribly hacked together) Github CI setup for Windows and OCaml 5 too.

@talex5

talex5 commented Apr 18, 2023

Copy link
Copy Markdown
Collaborator

Seems like a reasonable place to start, especially if it lets us get Windows CI running.

It might be better to base sched.ml on a simplified version of the Eio_linux one, though (e.g. with Uring.wait replaced with a failwith "TODO"). Then we'd already have the structure for polling for IO, doing wakeups, etc. (assuming uring is somewhat similar to iocp)

@talex5

talex5 commented Apr 27, 2023

Copy link
Copy Markdown
Collaborator

After some offline discussion with @avsm and @patricoferris, we decided the best way forward here is to make a simple non-IOCP Windows backend now for Eio 0.10, and then work on IOCP support later. The plan for the initial support is to copy eio_posix as eio_windows and remove anything that doesn't compile. Then anyone with some free time can work on the resulting TODOs.

@avsm

avsm commented Apr 27, 2023

Copy link
Copy Markdown
Contributor

Agreed. My concern is that the IOCP bindings still need some work, and I think a slower Windows backend is fine for the eio 1.0, followed by an IOCP version in a subsequent release.

@patricoferris

Copy link
Copy Markdown
Collaborator Author

I have this nearly working and will open a new PR (and close this one once I have), just some uncompilable bits being brought in from eio.unix where I need some of the features (e.g. FD stuff) but not others (e.g. fork actions)

@talex5

talex5 commented Apr 27, 2023

Copy link
Copy Markdown
Collaborator

Ah. I guess most of fork_action.c needs wrapping in a #ifdef then.

@patricoferris

Copy link
Copy Markdown
Collaborator Author

New PR over at #497

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

Successfully merging this pull request may close these issues.

3 participants