Commit graph

275 commits

Author SHA1 Message Date
Sönke Ludwig
b995bdaa72
Use thread wait primitives for worker thread shutdown.
Avoids possible issues due to tasks interleaving the shutdown on the same thread.
2017-02-23 14:43:22 +01:00
Sönke Ludwig
3dbdc90927
Fix shutdown when no worker tasks have been used. 2017-02-22 23:26:16 +01:00
Sönke Ludwig
76882b3bd7 Remove temporary debug log messages. 2017-02-22 19:58:11 +01:00
Sönke Ludwig
9ac908c599 Use a ring buffer for worker tasks and make TaskFuncInfo creation slightly more efficient. 2017-02-22 19:52:22 +01:00
Sönke Ludwig
6f78310f26 Use scope parameters for FixedRingBuffer as appropriate. 2017-02-22 19:51:15 +01:00
Sönke Ludwig
40713db075 Move worker task logic into a new TaskPool class. 2017-02-22 18:35:51 +01:00
Sönke Ludwig
f9372446b1 Improve the sync module.
- Change the API of Monitor to work without a callback
- Add ManualEvent.emitSingle
2017-02-22 17:42:20 +01:00
Sönke Ludwig
6f26766c70 Fix the "threadTime" log format to be consistent with "thread". 2017-02-22 17:36:43 +01:00
Sönke Ludwig
531398e28d Merge branch 'master' of github.com:vibe-d/vibe-core 2017-02-19 13:52:54 +01:00
Sönke Ludwig
3f83bef219 Fix Path.parentPath and Path.toString for PathType.windows. 2017-02-18 16:00:27 +01:00
Sönke Ludwig
68430a1ea4
Fix file pointer management in FileStream. Fixes rejectedsoftware/vibe.d#1684. 2017-02-16 23:37:41 +01:00
Sönke Ludwig
db29e4730f Let uncaught errors in fibers terminate the process. 2017-02-16 11:56:04 +01:00
Sönke Ludwig
93b342bf77 Fix compilation error on Windows. 2017-02-16 10:20:21 +01:00
Sönke Ludwig
b8663f9fbc
Conditionally compile TaskFiber.state.
See https://issues.dlang.org/show_bug.cgi?id=17131
2017-02-01 11:05:53 +01:00
Sönke Ludwig
2ed82ca975
Add compatibility overload for ConnectionPool.this.
See rejectedsoftware/vibe.d#1664.
2017-02-01 10:27:08 +01:00
Sönke Ludwig
df4022d83e
Add stream proxy types to allow user code to store generic streams. 2017-01-31 16:48:04 +01:00
Sönke Ludwig
72913575f4
Fix error message. 2017-01-30 22:52:36 +01:00
Sönke Ludwig
d9c373419a
Fixup for the previous timer fix. 2017-01-30 20:12:37 +01:00
Sönke Ludwig
f5c2177c5d
Fix createTimer() when called with a callback. 2017-01-30 19:55:34 +01:00
Sönke Ludwig
c490a354b7
Handle Timer.stop() gracefully for null timers. 2017-01-30 17:34:25 +01:00
Sönke Ludwig
b7e996cd8c
Let TCPConnection.peek() handle closed connections gracefully. 2017-01-30 17:27:43 +01:00
Sönke Ludwig
02e00944f6
Fix possible range violation in BatchBuffer.popFront(N). 2017-01-30 17:27:17 +01:00
Sönke Ludwig
2dccd43277
Let TCPConnection.waitForData amd leastSize act gracefully on closed connections. 2017-01-30 12:04:21 +01:00
Sönke Ludwig
ac811ba501
Remove buggy NetworkAddress.toUnknownAddress.
UnknownAddress is not large enough to hold either IPv6 or UDS addresses.
2017-01-30 11:40:11 +01:00
Sönke Ludwig
d2629ef053
Don't throw on read error in TCPConnection.waitForData. 2017-01-30 11:29:01 +01:00
Sönke Ludwig
4c9b6c0fb8
Properly check return value of createDatagramSocket. 2017-01-30 11:19:51 +01:00
Sönke Ludwig
8f6c4dd536
Fix LocalTaskSemaphore.
Fixes a potential hang, potential over-use of lock slots and only needs a single LocalManualEvent now instead of one created for each wait.
2017-01-30 10:07:06 +01:00
Sönke Ludwig
76df9212ef
Fix accessibility issue for std.concurrency.send. 2017-01-30 09:43:43 +01:00
Sönke Ludwig
84a21f7e9d
Add compatibility overloads for listenTCP. 2017-01-30 09:19:08 +01:00
Sönke Ludwig
e88d2d1b4b
Fix segfault in DirectoryWatcher. 2017-01-29 22:11:17 +01:00
Sönke Ludwig
d0a55ef374
Add an uninterruptible variant of Task.join. 2017-01-29 20:20:08 +01:00
Sönke Ludwig
96b798200c
Make more network methods nothrow.
TCPConection properties and NetworkAddress.to(Address)String have been marked nothrow.
2017-01-29 20:19:38 +01:00
Sönke Ludwig
2ff37202c0
Add compatibility overload for setTimer(). 2017-01-29 16:46:21 +01:00
Sönke Ludwig
798f0ef446
Implement support for TCPListenOptions.reusePort. 2017-01-27 22:51:17 +01:00
Sönke Ludwig
b391ebabbe
Add more specific assertion for SpinLock initialization. 2017-01-27 22:50:57 +01:00
Sönke Ludwig
fc96ee9050
Fixes for setTimer and SpinLock.
- setTimer now starts a task to call the callback. This keeps the timer referenced and avoids issues if I/O functions are called from within the callback.
- SpinLock is now also initialized in "shared static this", so that applications using "shared static this" for initialization work properly.
2017-01-27 22:50:29 +01:00
Sönke Ludwig
3a3eb73006
Fix InterfaceProxy when used with class instances. 2017-01-27 00:51:22 +01:00
Sönke Ludwig
71c83440d3
Remove the deprecated OutputStream.write methods.
They will stay deprecated in vibe-d 0.8.0, but vibe-core will be released without them.
2017-01-27 00:10:09 +01:00
Sönke Ludwig
822dcccf34
Add interfaceProxy function to allow for better vibe:core compatibility. 2017-01-26 23:53:18 +01:00
Sönke Ludwig
5249c1c4c6
Fix infinite recursion in TCPConnection.(local/remote)Address properties. 2017-01-26 13:58:14 +01:00
Sönke Ludwig
373f82c16b
Deprecate stream based OutputStream.write overloads.
Replaced by a global pipe() function that supports non-class streams, too.
2017-01-25 22:42:35 +01:00
Sönke Ludwig
8985923e4d
Let InterfaceProxy handle parameter storage classes properly. 2017-01-25 22:40:07 +01:00
Sönke Ludwig
5f980acefd
Upgrade to latest eventcore. 2017-01-25 21:04:13 +01:00
Sönke Ludwig
2acc60934f
Add IOMode parameters to stream read/write methods. 2017-01-19 00:36:32 +01:00
Sönke Ludwig
e80d7244bc
Add PathEntry.validateFilename. 2017-01-19 00:33:52 +01:00
Sönke Ludwig
fb706ea0b6
Properly implement struct Path.
The new implementation is @nogc where possible.
2017-01-17 23:50:33 +01:00
Sönke Ludwig
9d4e8086ff Make the callback type the first argument to Waitable!(). 2017-01-16 00:23:37 +01:00
Sönke Ludwig
964d72f3b5 Fix handling of scoped callback parameters in eventcore callbacks. 2017-01-16 00:20:35 +01:00
Sönke Ludwig
32d360baac Add callback based result retrieval for asyncAwaitAny.
This can be used to safely retrieve scoped data.
2017-01-15 23:55:37 +01:00
Sönke Ludwig
f3c84d497e Fix bind address handling for connectTCP. 2017-01-15 23:17:14 +01:00