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

linux support using liburing #169

Closed
wants to merge 21 commits into from
Closed

Conversation

Garcia6l20
Copy link

  • CMake support
  • io operations using liburing

- supports schedule operation
- file_read example with liburing
- (timed_)schedule_operation ok
- file_read_operation ok
- file access generic handling
- fix dangling references to io_vec
- catching uring errors (thrown in io_service corouting)
- required kernel version 5.4 (5.5 for connect/accept operations)
- moved stdcoro.hpp into detail sub-folder
- fix: `for co_await` removed from C++20
- fix: uring operation with offset handling
- impl: `cppcoro::net::socket_disconnect_operation_impl`
- fix: naming collusion with `socket`
- fix: `GENERIC_WRITE` definition for write_only_file
- fix: io_service cancellation
- fix: increased max_events in `io_service_fixture`
- remaining deadlock in io_service_tests: multiple I/O threads servicing events
- ERROR_MORE_DATA emulation using MSG_TRUNC
- mutext protection of sge and cqe
@Garcia6l20
Copy link
Author

All tests are passing on GCC11.
when_all() with all task types test fails on GCC10 because extra construction are done, 2 moves an 1 copy (GCC bug ???).

@Garcia6l20
Copy link
Author

if someone can tell me how check for header and add compile definitions with cake it could probably help me fixing CI

@andreasbuhr
Copy link
Contributor

Hi, thanks a lot for sharing your code. How does your contribution compare to #160?

@Garcia6l20
Copy link
Author

Hi, thanks a lot for sharing your code. How does your contribution compare to #160?

It includes what 160 does not. Timed scheduling and network.
I actually did not saw that other PR.

@andreasbuhr
Copy link
Contributor

@Garcia6l20 thanks again for your work. It would be great to see liburing support integrated. Your pull request addresses many different problems at once, which makes it difficult to review. It also solves problems which have already been solved in other pull requests. In the cppcoro fork at https://github.com/andreasbuhr/cppcoro I started an effort to merge the contributions from the different existing pull requests and solve only one problem at a time. One of the first steps should be to add CMake support. In https://github.com/andreasbuhr/cppcoro/tree/add_cmake_support I created a branch which does nothing but adding CMake support, based on the different pull requests which exist here. I'd like to invite you to help make it better. Once it is in a good shape, we can add a new pull request which can then (hopefully) be easily merged by Lewis. And then care about the next issue.

@Garcia6l20
Copy link
Author

@andreasbuhr Sounds great !
I would be pleased to help you.
I know I did it a bit fast but I wanted to see cppcoro in action :)
I'll close this PR and restart from your cmake branch step by step.

@Garcia6l20
Copy link
Author

Slowing down !

@Garcia6l20 Garcia6l20 closed this Oct 7, 2020
@andreasbuhr
Copy link
Contributor

Great. If you need any assistance, please drop me a note at andreas@andreasbuhr.de

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.

None yet

2 participants