Sönke Ludwig
a6eeae97f3
Fix DirectoryWatcher's creation of its LocalManualEvent.
2017-07-20 16:52:34 +02:00
Sönke Ludwig
f6736d13ab
Add test that reproduces the LocalManualEvent copy bug.
2017-07-20 16:14:47 +02:00
Sönke Ludwig
100dfc30ee
Add test that triggers the former bug in ThreadLocalWaiter.emit() and ensures FIFO emit order.
2017-07-20 16:10:18 +02:00
Sönke Ludwig
a4b36f08d3
Fix multiple issues in (Local)ManualEvent.
...
- Copying LocalManualEvent now works correctly, using reference counting
- ManualEvent correctly pins the reference to the thread-local waiter until it has finished emitting it
- ThreadLocalWaiter uses a doubly-linked list to manage task waiters (more efficient deletion, FIFO trigger order)
- Fixed a bug in ThreadLocalWaiter.emit() where the head element of the iterated list might already have stopped waiting, resulting in an invocation of a dangling TaskWaiter pointer
2017-07-20 15:57:44 +02:00
Sönke Ludwig
19db7732e6
Add nothrow annotations.
2017-07-20 13:36:27 +02:00
Sönke Ludwig
4bccf6fcb5
Use StackSList for ThreadLocalWaiter and add simple loop detection.
...
This will have to be adjusted to use a circular list with the possibility to insert a pivot element, so that consumption of waiters is safe in all cases (see the comment at 1265).
2017-07-19 14:54:33 +02:00
Sönke Ludwig
d39bbf19c0
Avoid extra exception and allow toString of unspecified NetworkAddress values.
2017-07-19 14:50:20 +02:00
The Dlang Bot
c62f07d257
Merge pull request #24 from vibe-d/error_handling
...
Use abort() in case of uncaught Error exceptions.
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2017-07-19 10:50:25 +02:00
Sönke Ludwig
fb1518a7d6
remove more white space
2017-07-19 00:40:24 +02:00
Sönke Ludwig
bfc6b89ca4
Use abort() in case of uncaught Error exceptions.
...
Fixes "dwarfeh(224) fatal error" that are suspected to be related to occasional infinite loops.
2017-07-19 00:11:12 +02:00
Sönke Ludwig
fcf98c2016
Merge branch 'master' into trailing-whitespace
2017-07-19 00:08:33 +02:00
Sönke Ludwig
d7b2173cb3
Implement TCPListener.stopListening and fix the vibe.core.net.1726 test.
...
The test fix follows the fix in the vibe.d repository: rejectedsoftware/vibe.d#f960427e5974c176c58b516647895a2af4ea181b
2017-07-18 11:55:39 +02:00
Sönke Ludwig
e3492bab06
Update change log and bump version number.
2017-07-16 22:29:45 +02:00
Sönke Ludwig
4f69b1eaf3
Add setTaskCreationCallback() for better remote debugger integration.
2017-07-16 22:07:59 +02:00
Sönke Ludwig
719c62d6c9
Fix TLS initialization condition.
2017-07-16 00:08:07 +02:00
Sönke Ludwig
7efb496208
Fix double-free of ThreadLocalWaiter in ManualEvent.
...
Also adds assertions and a randomized multi-thread test to rule out similar issues with a higher confidence.
2017-07-15 18:16:13 +02:00
Sönke Ludwig
254d91dcdf
Improve error message.
2017-07-15 10:12:52 +02:00
Sönke Ludwig
87296bb1e4
Fix compilation error for VibeIdleCollect.
2017-07-10 19:46:16 +02:00
Sönke Ludwig
ca2f9dbe91
Add UDP multicast declarations matching rejectedsoftware/vibe.d#1806 .
...
The actual functionality still needs to be implemented in eventcore.
2017-07-08 10:44:42 +02:00
Sönke Ludwig
429d5dcb77
Fix GenericPath.parentPath.
2017-07-07 22:29:12 +02:00
Sebastian Wilzbach
8f89733a86
Remove all trailing whitespace
...
sed 's/[ \t]*$//' -i **/*.d
2017-07-03 12:19:27 +02:00
Sebastian Wilzbach
04b3575c14
Remove deprecated stdc import
2017-07-03 00:39:41 +02:00
Sönke Ludwig
01ed0a43de
Adjust for eventcore 0.8.12.
2017-06-27 01:11:50 +02:00
Sönke Ludwig
f123e55fa9
Fix assertion condition.
2017-06-22 16:22:11 +02:00
Sönke Ludwig
ed9efd9f44
Merge pull request #10 from wilzbach/allow-removal-of-the-default-logger
...
Allow removal of the default logger
2017-06-22 10:25:20 +02:00
Sönke Ludwig
fd93ab82f5
Remove deprecation attribute for the system overload of setTimer.
...
The approach for now is to keep overloads that receive system delegates and are also marked system in turn. This breaks safety promises in some places within the library, but is an acceptable first step that keeps other possible directions open.
2017-06-22 09:38:56 +02:00
Sönke Ludwig
f40da06385
Update version number.
2017-06-22 09:36:49 +02:00
Sönke Ludwig
07e077a009
Redesign the Path type to statically encode the path format.
...
The previous design, while intended as an improvement over the one-size-fits all Path struct of vibe-d:core, turned out to produce lots of bugs during the transition, because of missing Path.type checks.
The new design uses a cleaner approach, where the static type of a path value encodes the path format. An explicit cast is necessary to convert between different path types. The internet path type also performs proper validation and percent encoding, so that InetPath.toString() always produces a valid URI path.
2017-06-21 14:04:24 +02:00
Sönke Ludwig
7d7e4709c1
Fix nothrow overloads of lock().
2017-06-15 13:45:14 +02:00
Sönke Ludwig
0d164708ec
Fix Windows->inet/Posix path conversion issue.
2017-06-15 10:04:55 +02:00
Sönke Ludwig
5c156d1e90
Clarify async() semantics.
2017-06-12 17:34:09 +02:00
Sönke Ludwig
62e3add3ab
Fix a number of issues related to mixing different path types.
2017-06-12 17:33:25 +02:00
Sönke Ludwig
6f7c897f91
Fix getFileInfo name return value for paths that end with a slash.
2017-06-12 17:31:52 +02:00
Sönke Ludwig
bc689489a8
Add yieldLock(), which enables enforcing no task switches within a scope.
...
runTask() was altered to delay the task switch in case it gets called within an active yieldLock(), so that running tasks is still possible.
2017-06-11 11:40:25 +02:00
Sönke Ludwig
698824e811
Partially implement FileDescriptorStream.
...
Currently only works for waiting on read-readiness (eventcore is not exposing an analog function for write-readiness).
2017-05-30 11:02:22 +02:00
Sönke Ludwig
99a5b882d8
Limit the number of recycled fibers.
...
This allows the process to free up memory after heavy load spikes, while not impacting performance negatively.
2017-05-30 11:00:37 +02:00
Sönke Ludwig
0aed5664ef
Let openFile throw on failure instead of returning an invalid stream.
2017-05-30 10:57:31 +02:00
Dentcho Bankov
aef2936abd
Fix for #11 . Cross port of fix for #1742 from vibe.d
2017-04-15 00:04:08 +03:00
Sönke Ludwig
e3c680b0ce
Add assertion to ManualEvent to check for failure of creating event handles.
2017-03-27 16:32:24 +02:00
Sönke Ludwig
0895cd1960
Avoid bogus assertion failure.
...
Since the task queue entries never got cleaned up, the assertion got triggered once already used queue slots were starting to get reused.
2017-03-27 16:31:52 +02:00
Sönke Ludwig
e81589fa3e
(Re)implement JSON configuration support for readOption.
...
Since the core->data dependency was removed, this had to be commented out. It is now implemented in terms of std.json.
2017-03-25 14:16:22 +01:00
Sönke Ludwig
e769a9b1ca
Avoid lazy evaluation of log arguments while the loggers are locked. Fixes rejectedsoftware/vibe.d#1717 .
...
The deadlock happened because a function that waits for a worker task to finish was passed to the log functions. Evaluated lazily, it got called while the logger's mutex was locked, meaning that any log call from within that thread would cause a deadlock.
This change also has another, possibly important, implication - arguments are evaluated only once instead of possibly multiple times if multiple loggers are registered. This could very well make a lot of existing (wrong) code more robust (e.g. logInfo("%s", i++)).
2017-03-23 17:55:51 +01:00
Sebastian Wilzbach
c80a15321e
Allow removal of the default logger
2017-03-22 13:45:32 +01:00
Sönke Ludwig
e3f9d07e58
Don't store local/remote address for UDP connections.
...
Errored out due to the space requirements of UNIX addresses.
2017-03-10 23:00:43 +01:00
Sönke Ludwig
5fd9fc4007
Always compute TCPConnection.xxxAddress on demand.
...
Storing the network addresses becomes too expensive with UNIX socket support.
2017-03-10 21:06:18 +01:00
Sönke Ludwig
ed8b33786b
Compile fixes.
2017-03-10 20:07:04 +01:00
Sönke Ludwig
1edfc88e63
Add UNIX address type support to NetworkAddress.
2017-03-10 19:53:40 +01:00
Sönke Ludwig
77eddebe45
Improve Path compatibility with the original implementation.
2017-03-10 19:53:07 +01:00
Sönke Ludwig
1d9e88f27a
Fix createTempFile on Windows.
2017-03-09 16:09:46 +01:00
Sönke Ludwig
de718c4b1c
Add runTask overloads to make lambda argument inference work.
2017-02-23 16:39:42 +01:00