Skip to content

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