Commit graph

84 commits

Author SHA1 Message Date
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