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
fb2732a570
event: Improve formatting and stability
2020-01-23 02:36:28 +01:00
Michael Fabian 'Xaymar' Dirks
55d7d90209
windows: Fix accidental rename
2020-01-23 02:35:36 +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
3dd8e1e102
cmake: Refactor CMakeLists
2020-01-23 01:14:38 +01:00
Michael Fabian 'Xaymar' Dirks
b038d2c680
cmake: Remove CppCheck support in favor of clang-tidy
2019-07-04 20:32:26 +02: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
4bdcf51c54
windows/datapath: Windows implementation
2019-04-11 01:44:10 +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
99e47d59f7
samples/benchmark: Basic benchmark sample
2019-01-08 07:58:10 +01: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
a178f4118a
readme: Add missing 0 to timings
2019-01-08 03:42:58 +01:00
Michael Fabian 'Xaymar' Dirks
8a4df2cc3a
samples/single-process-ipc: Add single process IPC sample
...
A basic sample to show the layout required to do any IPC work for both client and server. It does not have a multi-process architecture and instead relies on threading, but this already shows the speed that should be expected when using DataPath.
2019-01-08 03:06:08 +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
c6de678c36
event: Fix template
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
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
b7c20ecd20
Initial README
2019-01-06 11:13:02 +01:00
Michael Fabian 'Xaymar' Dirks
92e5a327b2
Initial Code
2019-01-06 11:12:50 +01:00
Michael Fabian 'Xaymar' Dirks
009868afe6
Initial Commit
2019-01-06 11:10:29 +01:00