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

Initial windows scheduler #490

Closed
wants to merge 1 commit into from

Conversation

patricoferris
Copy link
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
Copy link
Collaborator

talex5 commented Apr 18, 2023

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
Copy link
Collaborator

talex5 commented Apr 27, 2023

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
Copy link
Contributor

avsm commented Apr 27, 2023

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
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
Copy link
Collaborator

talex5 commented Apr 27, 2023

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

@patricoferris
Copy link
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