19 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks d6e6ec96c4 windows: Rewrite onto IOCompletionPorts
IOCompletionPorts are the modern way to handle asynchronous IO without affected the system too much. Synchronization, work allocation and spreading, etc is all handled by the OS for us, which reduces the work we have to do in order to be NUMA aware. While this is far from perfect, it should perform better than a naive threaded approach.

ToDo:
- Add documentation generation
- Add Github Actions integration
- Write tests for everything.
- Update 'benchmark' sample to work again.
- Figure out a useful way to deal with connect/disconnect/error events.
- Figure out the broken pipe error, caused by an additional connected event where none should have been.
2020-06-22 00:43:06 +02:00
Michael Fabian 'Xaymar' Dirks f9acd6984a windows: Improve stability by enforce no-copy 2020-01-23 04:01:44 +01:00
Michael Fabian 'Xaymar' Dirks 55d7d90209 windows: Fix accidental rename 2020-01-23 02:35:36 +01:00
Michael Fabian 'Xaymar' Dirks acd4d4b356 cmake: Further refactoring and formatting 2020-01-23 01:51:15 +01:00
Michael Fabian 'Xaymar' Dirks 4bdcf51c54 windows/datapath: Windows implementation 2019-04-11 01:44:10 +02:00
Michael Fabian 'Xaymar' Dirks 8571beb2dc windows/server: Fix crash when disconnecting sockets 2019-01-08 07:57:40 +01:00
Michael Fabian 'Xaymar' Dirks 9b9504d925 windows/waitable: Allow a timeout of 0 2019-01-08 03:01:54 +01:00
Michael Fabian 'Xaymar' Dirks 80ee995dbd windows/utility: Set event in def_io_completion_routine 2019-01-08 03:01:19 +01:00
Michael Fabian 'Xaymar' Dirks 6029b37796 windows/socket: Assign io completion routine and test event first 2019-01-08 03:01:03 +01:00
Michael Fabian 'Xaymar' Dirks 28aaf02788 server: Fix several crashes with variable iteration 2019-01-08 03:00:29 +01:00
Michael Fabian 'Xaymar' Dirks 2af167bec3 waitable: Do not return Failure when timing out. 2019-01-07 00:27:37 +01:00
Michael Fabian 'Xaymar' Dirks 6626a5441b socket: Remove datapath::error from on_close 2019-01-07 00:25:03 +01:00
Michael Fabian 'Xaymar' Dirks 18c772fafb server: Asynchronous Accept events
This detaches accept from the task workflow.
2019-01-07 00:24:42 +01:00
Michael Fabian 'Xaymar' Dirks 98654b68f1 waitable: Fix asserts 2019-01-07 00:23:40 +01:00
Michael Fabian 'Xaymar' Dirks 808af66bb0 task: Add header information to data 2019-01-07 00:23:40 +01:00
Michael Fabian 'Xaymar' Dirks 5facc71844 windows/utility: Add default io completion routine 2019-01-07 00:23:40 +01:00
Michael Fabian 'Xaymar' Dirks 8417fdfd67 datapath.hpp: Assign default max client to be 0 (infinite) 2019-01-06 11:25:48 +01:00
Michael Fabian 'Xaymar' Dirks 1f5096f3a5 License: Fix extra space before name 2019-01-06 11:17:01 +01:00
Michael Fabian 'Xaymar' Dirks 92e5a327b2 Initial Code 2019-01-06 11:12:50 +01:00