Commit graph

341 commits

Author SHA1 Message Date
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 536fa09780 Add helper module with intrusive singly and doubly linked lists. 2017-07-20 13:34:39 +02:00
Sönke Ludwig cfb4f83113 Add makeGCSafe/disposeGCSafe as GC safe variants of make/dispose.
If necessary, these will call GC.addRange/GC.removeRange to avoid dangling GC references.
2017-07-20 13:34:12 +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 7f050af455 Merge pull request #21 from wilzbach/trailing-whitespace
Remove all trailing whitespace + add check
2017-07-19 09:20:19 +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 3d1175e821
Fix InterfaceProxy when used with class instances. 2017-07-19 00:10:39 +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 a70f35e846
Update compiler support list. 2017-07-17 12:00:15 +02:00
Sönke Ludwig e3492bab06 Update change log and bump version number. 2017-07-16 22:29:45 +02:00
Sönke Ludwig 6aa2775381 Skip failing test configurations.
- the libasync tests are disabled for now, since the libevent driver in eventcore isn't implemented.
- LDC 1.0.0 on Windows fails with a stack overflow - added to allowed_failures due to the age of the underlying front end
2017-07-16 22:28:43 +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
The Dlang Bot 9e390de9bf Merge pull request #23 from vibe-d/manual_event_fix
Fix double-free of ThreadLocalWaiter in ManualEvent.
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2017-07-15 18:17:21 +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 efeab80bd3 Update change log. 2017-07-10 11:22:26 +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
Sönke Ludwig b501d419f8 Test all branches with AppVeyor. 2017-07-07 02:38:23 +02:00
Sebastian Wilzbach cb169b8502 Merge pull request #22 from wilzbach/remove-stdc
Remove deprecated stdc import
merged-on-behalf-of: Sebastian Wilzbach <wilzbach@users.noreply.github.com>
2017-07-05 14:19:29 +02:00
Sebastian Wilzbach 8f89733a86 Remove all trailing whitespace
sed 's/[ \t]*$//' -i **/*.d
2017-07-03 12:19:27 +02:00
Sebastian Wilzbach 3faa5f3bdc Add check for trailing whitespace 2017-07-03 12:19:23 +02:00
Sebastian Wilzbach 04b3575c14 Remove deprecated stdc import 2017-07-03 00:39:41 +02:00
Sönke Ludwig 346ce03cbd Merge pull request #19 from wilzbach/codecov
Add initial CodeCov setup
2017-07-01 12:55:40 +02:00
Sebastian Wilzbach 786c1fce03 Add .lst files to .gitignore 2017-06-30 03:40:11 +02:00
Sebastian Wilzbach e6509bdd2b At initial CodeCov setup 2017-06-30 03:31:34 +02:00
Sönke Ludwig 490037a5bd Merge pull request #18 from vibe-d/fix_for_dmd2075
Use a thread local allocator instead of processAllocator in HashMap.
2017-06-28 18:12:48 +02:00
Sönke Ludwig 58ee4a8839
Use a thread local allocator instead of processAllocator in HashMap.
This is required since processAllocator returns an ISharedAlloactor since 2.075.0. Because HashMap is operating only thread-local, this should generally be safe.
2017-06-28 17:22:13 +02:00
Sönke Ludwig 01ed0a43de Adjust for eventcore 0.8.12. 2017-06-27 01:11:50 +02:00
Sönke Ludwig 67e57f34d6 Update .gitignore. 2017-06-22 20:34:29 +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 7910fbc973
Update compiler support list.
See also #14.
2017-06-22 10:21:26 +02:00
Sönke Ludwig 3717e62232
Add change log. 2017-06-22 10:18:32 +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 5da617eca4 Merge pull request #17 from vibe-d/revamp_path
Redesign the Path type to statically encode the path format.
2017-06-21 14:20:35 +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 d5448e2986 Fix typo 2017-06-12 22:18:43 +02:00
Sönke Ludwig 5c156d1e90 Clarify async() semantics. 2017-06-12 17:34:09 +02:00