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

[#2377] Implement epoll based DatagramChannel #2391

Closed
wants to merge 1 commit into from

Conversation

normanmaurer
Copy link
Member

Motivation:
There is currently no epoll based DatagramChannel. We should add one to make the set of provided channels complete and also to be able to offer better performance compared to the NioDatagramChannel once SO_REUSEPORT is implemented.

Modifications:
Add implementation of DatagramChannel which uses epoll. This implementation does currently not support multicast yet which will me implemented later on. As most users will not use multicast anyway I think it is fair to just add the EpollDatagramChannel without the support for now. We shipped NioDatagramChannel without support earlier too ...

Result:
Be able to use EpollDatagramChannel for max. performance on linux

Motivation:
There is currently no epoll based DatagramChannel. We should add one to make the set of provided channels complete and also to be able to offer better performance compared to the NioDatagramChannel once SO_REUSEPORT is implemented.

Modifications:
Add implementation of DatagramChannel which uses epoll. This implementation does currently not support multicast yet which will me implemented later on. As most users will not use multicast anyway I think it is fair to just add the EpollDatagramChannel without the support for now. We shipped NioDatagramChannel without support earlier too ...

Result:
Be able to use EpollDatagramChannel for max. performance on linux
@normanmaurer
Copy link
Member Author

@trustin please review

@ghost
Copy link

ghost commented Apr 15, 2014

Build result for #2391 at 4aca96c: Success

@normanmaurer normanmaurer added this to the 4.1.0.Final milestone Apr 15, 2014
}

/**
* Block the given sourceToBlock address for the given multicastAddress on the given networkInterface
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use {@code ...} to signify parameter names, everywhere possible.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@trustin I think I could even remove the javadocs as these are on the interfaces anyway ?

@trustin
Copy link
Member

trustin commented Apr 16, 2014

Looks OK except some nitpicks. Fix them all and then merge.

@normanmaurer
Copy link
Member Author

@trustin also for 4.0 ?

@trustin
Copy link
Member

trustin commented Apr 16, 2014

Yep. I'd say epoll transport is experimental for now.

@trustin
Copy link
Member

trustin commented Apr 16, 2014

aka 'tech preview' - we are gonna make it stable in 4.1 if everything goes well.

@normanmaurer
Copy link
Member Author

cherry-picked into 4.0, 4.1 and master.

@trustin trustin modified the milestones: 4.1.0.Beta1, 4.1.0.Final Jul 3, 2014
@trustin trustin added the feature label Jul 4, 2014
@trustin trustin removed this from the 4.1.0.Beta1 milestone Jul 4, 2014
@normanmaurer normanmaurer deleted the native_datagram branch November 3, 2014 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants