14 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 fb2732a570 event: Improve formatting and stability 2020-01-23 02:36:28 +01:00
Michael Fabian 'Xaymar' Dirks 08713db947 cmake: Fix remaining compile issues 2020-01-23 02:16:21 +01:00
Michael Fabian 'Xaymar' Dirks acd4d4b356 cmake: Further refactoring and formatting 2020-01-23 01:51:15 +01:00
Michael Fabian 'Xaymar' Dirks a3b4ff4983 threadpool: Simple threadpool implemenation
Relies on standard C++ functionality to work. It might be worth it to consider pthread or boost in the future for this.
2019-04-11 17:00:40 +02:00
Michael Fabian 'Xaymar' Dirks 1c0747bf98 event: Improve event code 2019-04-11 01:42:56 +02:00
Michael Fabian 'Xaymar' Dirks 6cc5076333 error: Add unsupported operation error code 2019-04-11 01:41:45 +02: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 c6de678c36 event: Fix template 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 20da2b943a datapath.hpp: Only include necessary headers and formatting 2019-01-06 11:18:44 +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