Sönke Ludwig
4703f021ec
Fix setting initial state for incoming TCP connections.
2017-01-29 21:00:27 +01:00
Sönke Ludwig
3d81854214
Add StreamListenOptions.
...
Can be used to set the SO_REUSEPORT option for multi-thread/multi-process incoming TCP connection distribution.
2017-01-27 22:09:05 +01:00
Sönke Ludwig
4e830a408f
Split up WinAPI driver into separate files.
2017-01-25 16:14:06 +01:00
Sönke Ludwig
87394165de
Only bind outgoing stream sockets explicitly if requested.
2017-01-25 12:57:02 +01:00
Sönke Ludwig
ea60f55a8d
Fix another compile error.
2017-01-25 12:35:42 +01:00
Sönke Ludwig
b52747247b
Fix Linux compilation.
2017-01-25 12:33:00 +01:00
Sönke Ludwig
d1829669ec
Split up Posix event driver into separate files.
2017-01-25 00:11:57 +01:00
Sönke Ludwig
0b012e7ec7
Remove duplicate declaration.
2017-01-23 22:31:23 +01:00
Sönke Ludwig
d3e8005662
Fix Win64 compilation.
2017-01-23 22:24:27 +01:00
Sönke Ludwig
356a34fad2
Implement simple (synchronous) DNS lookup for the WinAPI driver.
2017-01-23 21:37:35 +01:00
Sönke Ludwig
607bd1df09
Try executing DNS resolve tasks in a new thread to work around macOS hang.
2017-01-23 15:07:47 +01:00
Sönke Ludwig
e72b071057
Add debug output for the getaddrinfo based DNS lookup driver.
2017-01-23 12:17:53 +01:00
Sönke Ludwig
e55e23368a
Fix compile error on macOS.
2017-01-23 11:52:09 +01:00
Sönke Ludwig
d6321a2b52
Fix waiter count bookkeeping in PosixEventDriverEvents.
2017-01-23 11:34:14 +01:00
Sönke Ludwig
e5078ad399
Fix ConsumableQueue.consume with no entries present.
2017-01-23 11:33:45 +01:00
Sönke Ludwig
0422ee495c
Fix null pointer error.
2017-01-23 11:15:03 +01:00
Sönke Ludwig
a8aa505373
Fix Linux build.
2017-01-23 10:38:09 +01:00
Sönke Ludwig
b556849af2
Fully fix the Win64 build (test might still fail).
2017-01-23 10:03:36 +01:00
Sönke Ludwig
2c4534d178
Fix Win64 build.
2017-01-23 09:09:30 +01:00
Sönke Ludwig
217a6698cb
Fix type conversion error.
2017-01-22 21:55:51 +01:00
Sönke Ludwig
619948c4d5
Another fix attempt for the special read 0 behavior.
2017-01-22 21:29:12 +01:00
Sönke Ludwig
25bab3e37e
Make the kqueue event driver work.
2017-01-22 20:54:09 +01:00
Sönke Ludwig
c9c6d73f5e
Make the kqueue event driver compile on macOS (doesn't work yet).
2017-01-22 18:43:29 +01:00
Sönke Ludwig
1c83076897
Fixup TCP read wait special case.
2017-01-22 12:40:07 +01:00
Sönke Ludwig
dd5c88d1ed
Fix compilation and event behavior on macOS.
2017-01-22 12:36:27 +01:00
Sönke Ludwig
f5b514899a
Add basic documentation for the driver interface.
2017-01-22 11:39:01 +01:00
Sönke Ludwig
58c89a7369
Implement proper zero size wait semantics for Posix stream sockets.
2017-01-22 10:47:58 +01:00
Sönke Ludwig
ca81d25645
Implement socket adoption and fix wait loops on Windows for the Posix driver.
2017-01-22 10:43:18 +01:00
Sönke Ludwig
28040004cf
Another compile fix.
2017-01-22 03:32:38 +01:00
Sönke Ludwig
55ea6c192f
DMD 2.073.0-rc1 compile fixes.
2017-01-22 03:26:47 +01:00
Sönke Ludwig
922c9e8e72
Revert "Make the address parameter of send() scoped."
...
This reverts commit 1385250884
.
2017-01-22 03:16:36 +01:00
Sönke Ludwig
d6f6fc8357
Posix compile fix.
2017-01-22 03:10:46 +01:00
Sönke Ludwig
1385250884
Make the address parameter of send() scoped.
2017-01-22 03:05:46 +01:00
Sönke Ludwig
17c4fe65a8
Fix the Windows events implementation in the Posix driver.
2017-01-22 03:05:01 +01:00
Sönke Ludwig
924f2087f2
Fix premature event loop exit in case of waiting for events in the Posix driver.
2017-01-22 02:30:00 +01:00
Sönke Ludwig
0e38717669
Add unit test for SmallIntegerSet.
2017-01-22 02:28:40 +01:00
Sönke Ludwig
6b68e934f3
Implement file support for the WinAPI driver.
2017-01-22 02:01:13 +01:00
Sönke Ludwig
2a5252977e
Implement events for the WinAPI driver.
2017-01-21 23:19:39 +01:00
Sönke Ludwig
f7ec3da756
Implement directory watchers for the WinAPI driver.
2017-01-21 21:10:17 +01:00
Sönke Ludwig
4c7281dd01
Trivial refactor.
2017-01-21 17:27:54 +01:00
Sönke Ludwig
74d9242086
Final compile fix attempt.
2017-01-21 17:27:28 +01:00
Sönke Ludwig
40595fe133
Fix another compilation error.
2017-01-21 17:17:11 +01:00
Sönke Ludwig
0f325a47e4
Fix compilation error on Linux.
2017-01-21 16:40:28 +01:00
Sönke Ludwig
12e59b9c3c
Implement basic event processing and timers for the WinAPI driver.
2017-01-21 16:39:48 +01:00
Sönke Ludwig
373cf45b1e
Also fix compilation of PosixEventDriverEvents on Windows.
...
The previous commit actually didn't fully fix the Windows build.
2017-01-21 16:34:06 +01:00
Sönke Ludwig
64f6bb2a14
Make the select based configuration compile on Windows.
2017-01-21 16:19:34 +01:00
Sönke Ludwig
a1f0cafeb3
Add IOMode parameter for file IO operations.
2017-01-19 00:24:38 +01:00
Sönke Ludwig
672e1c951d
Adjust high level wrapper and test.
2017-01-15 21:59:15 +01:00
Sönke Ludwig
8b8169b868
Add EventDriverSockets.setBroadcast.
2017-01-15 21:42:05 +01:00
Sönke Ludwig
116940a5a7
Add EventDriverSockets.getLocalAddress and make parameters scope where possible.
2017-01-15 20:56:06 +01:00
Sönke Ludwig
d8f10972eb
Added EventDriverSockets.setKeepAlive.
2017-01-15 17:21:18 +01:00
Sönke Ludwig
2341762992
Fix range violation errors in ConsumableQueue.
2017-01-13 20:30:56 +01:00
Sönke Ludwig
aa7b2946f3
Add shared overload of the EventDriver.events property.
...
This allows accessing the shared "trigger" method from a shared event driver.
2017-01-13 10:20:51 +01:00
Sönke Ludwig
a3ca0965cf
Fix wrong epoll timeout in case of already expired timers.
...
This could cause process/task starvation due to an infinite wait timeout.
2016-12-29 22:51:07 +01:00
Sönke Ludwig
06bcccd6ac
Revert #1 .
...
The idea is that every wait() produces exactly one callback unless cancelled.
2016-12-19 22:21:36 +01:00
Sönke Ludwig
e33d36eb46
Fix compilation errors in the socket wrapper.
2016-12-19 22:16:34 +01:00
Sönke Ludwig
cc3299fb88
Fix compilation on Windows and DMD 2.072.1.
2016-12-19 16:16:22 +01:00
Sönke Ludwig
8a365f6d07
Use the 0.8.x line of libasync and fix compilation of the (stub) libasync driver.
2016-12-18 23:55:59 +01:00
Sönke Ludwig
2acf44596a
Avoid possible dangling objects referenced by timer callback delegates. Fixes #2 .
2016-12-18 19:39:29 +01:00
Satoshi
bfe1c46a73
Update timer.d
...
Don't remove callback when timer is periodic because after first hit cb cannot be called again?
2016-12-12 11:31:16 +01:00
Sönke Ludwig
7e9031439c
Remove EventDriverFiles.createTemp() and add adopt() instead.
...
The rationale is to keep the event loop abstraction at a minimal size. createTemp(), to be generally useful, would also require a getFilename(fd) method and possibly more. adopt() on the other hand is frequently useful for wrapping other libraries.
2016-12-10 15:59:03 +01:00
Sönke Ludwig
de89a5a9e1
Fix out-of-bounds access in SmallIntegerSet.
2016-12-10 15:53:59 +01:00
Sönke Ludwig
175368b334
Fix erroneously disabling some socket events in the Posix driver.
2016-11-29 11:58:46 +01:00
Sönke Ludwig
ba61afbc2b
Introduce debug version EventCoreEpollDebug.
...
Outputs some debug log messages for the epoll backend.
2016-11-29 11:56:23 +01:00
Sönke Ludwig
c85d546efd
Fix PosixEventDriverSockets.shutdown and .getConnectionState.
2016-11-04 21:29:05 +01:00
Sönke Ludwig
0cdde3008c
Fix range violation in ConsumableQueue.
2016-11-04 21:28:08 +01:00
Sönke Ludwig
d181a6730f
Add bind address support for outgoing TCP connections.
2016-11-02 20:22:54 +01:00
Sönke Ludwig
35f5852d8f
Disable the getaddrinfo_a based host name lookup.
...
Causes a stack address issue within vibe-core that still needs further debugging.
2016-10-25 00:13:21 +02:00
Sönke Ludwig
88600c5e21
Remove stack optimizations for DNS lookups and streamline send() signature.
2016-10-25 00:12:13 +02:00
Sönke Ludwig
39afb2ad21
Properly initialize accepted stream sockets.
2016-10-24 08:17:59 +02:00
Sönke Ludwig
d6e77adfc5
Clear the full FD slot after the FD has been closed.
2016-10-24 07:55:39 +02:00
Sönke Ludwig
92c6783ef3
Fix ChoppedVector to properly use GC.addRange for allocated memory.
2016-10-24 07:55:00 +02:00
Sönke Ludwig
9bf0875778
Add event test and fix the notify_all==false case.
2016-10-24 00:44:55 +02:00
Sönke Ludwig
5450cda724
Make the FD map in the Posix event driver type safe.
2016-10-24 00:15:42 +02:00
Sönke Ludwig
2846637f95
Add AlgebraicChoppedVector as the future base for the event drivers FD map.
2016-10-24 00:12:35 +02:00
Sönke Ludwig
5cca0e863b
Avoid default arguments in driver interface and streamline Handle declarations.
2016-10-24 00:11:40 +02:00
Sönke Ludwig
e824278870
Fix possible null pointer access.
2016-10-19 22:00:22 +02:00
Sönke Ludwig
ee1b9cbd4b
Fix Linux build.
2016-10-19 14:30:16 +02:00
Sönke Ludwig
5f243cbb18
Improve cross-platform organization and fix compilation on Windows (posix driver).
2016-10-18 11:53:52 +02:00
Sönke Ludwig
c12fefadcf
Add stub/partial implementation of WinAPI and kqueue based drivers.
2016-10-17 21:59:00 +02:00
Sönke Ludwig
201e4f6077
Make all releaseRef() methods return a Boolean.
2016-10-17 21:53:30 +02:00
Sönke Ludwig
e4e78a860a
Implement inotify based directory watcher.
2016-10-17 21:42:09 +02:00
Sönke Ludwig
8ecc583e4d
Make timer wait semantics consistent with other wait() functions.
2016-10-17 21:41:48 +02:00
Sönke Ludwig
270543d3d8
Implement getaddrinfo_a based DNS lookup for Linux.
2016-10-16 23:01:22 +02:00
Sönke Ludwig
bdaff3264f
Implement listening for signals based on signalfd().
2016-10-16 21:06:11 +02:00
Sönke Ludwig
0cce1123fc
Add getaddrinfo based DNS lookup implementation.
2016-10-16 14:30:52 +02:00
Sönke Ludwig
2b442f949b
Add ChoppedVector.opApply.
2016-10-16 14:30:12 +02:00
Sönke Ludwig
2518a6c301
Add DNS API and update Libasync stub.
2016-10-14 22:24:31 +02:00
Sönke Ludwig
c6dec730d8
Split up PosixEventDriver into individual classes.
2016-10-12 22:59:15 +02:00
Sönke Ludwig
2a44817911
Fix safety errors on DMD 2.072.0-b2.
2016-10-12 10:00:31 +02:00
Sönke Ludwig
c526b58866
Fix notification/resource management bugs.
...
- Enforce that objects stay alive as long as a callback is pending
- Avoid multiple connect callbacks for connectStream
2016-10-07 20:22:39 +02:00
Sönke Ludwig
9d833a7a62
Use template alias paramters for callbacks in all socket wrapper functions.
2016-10-07 19:40:01 +02:00
Sönke Ludwig
e2814315e4
Fix some socket bugs and improve code.
2016-10-07 19:39:13 +02:00
Sönke Ludwig
45931f2c17
Add a draft version of a managed socket wrapper API.
2016-10-07 12:40:10 +02:00
Sönke Ludwig
c4e985b73c
Implement UDP socket support.
2016-10-07 12:39:38 +02:00
Sönke Ludwig
2a8c52f347
Add a thread pool based async file implementation.
2016-10-06 22:04:33 +02:00
Sönke Ludwig
a2691ff0af
Add SmallIntegerSet utility container.
2016-10-06 15:14:18 +02:00
Sönke Ludwig
49116ede13
Fix doc comment formatting.
2016-10-05 21:09:14 +02:00
Sönke Ludwig
95ccc347d5
Add stub libasync support.
2016-10-05 14:38:29 +02:00
Sönke Ludwig
b95c9e5bbc
Remove redundancies from API function names.
2016-10-05 14:09:51 +02:00