-
Notifications
You must be signed in to change notification settings - Fork 216
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
Cross platform support #593
Comments
The reason is that libuv's disk I/O uses a threadpool and hence is not fully asynchronous. |
But what implications does that have exactly, apart from (maybe) performance? |
Yes, the only implication is performance. And yeah you're right, unfortunately the implementation is currently a little bit coupled. I have planned to introduce an abstraction (also to move to the new I think practically speaking the easiest way would be to fork and modify After you get it working, we can see how to best abstract the two implementations and merge it. |
Actually, now that I think of it, we don't even need an interface. Basically the abstraction that is already in place is the |
IntroductionThese are a few of my thoughts/observation based on my analysis of the code. Naming conflictThe following function, defined in
Obviously, this problem only occurs when targeting Windows, but the naming scheme of the functions defined in ProgressI haven't had much free time lately, but I've tried doing some work in implementing windows support - mostly in
But the examples still needs some work. Also I haven't tested the resulting libraries, so my changes are likely buggy. All changes are on my branch. |
Hello folks, working on canonical/raft#173 to continue this effort in MacOS direction, and found that during Particularly this part is bugging me: https://github.com/canonical/raft/blob/v0.9.25/src/client.c#L201-L207 - on Linux it's working just fine, but on MacOS the |
Ok, finally found the actual issue and now PR contains the working patch. |
In the readme it says that the Linux AIO API is used for disk I/O, which prevents this library from being cross platform. However, if the library already uses libuv, is there a reason why libuv isn't used as an abstraction for disk I/O?
The text was updated successfully, but these errors were encountered: