Sönke Ludwig
463f4e4efb
Disable graceful shutdown for SIGABRT on Windows.
...
Since this is meant specifically for killing the process in bad program states, invoking the normal event loop shutdown code is too risky.
2018-06-05 12:01:20 +02:00
Sönke Ludwig
dfd3d2fd70
Bump version number
2018-04-08 17:58:16 +02:00
Sönke Ludwig
d4c5620d70
Merge pull request #77 from Boris-Barboris/manualevent_overflow
...
fix integer overflow protection absence for LocalManualEvent
2018-04-08 17:21:14 +02:00
Sönke Ludwig
fd92a7f555
Fix Task.running and Task.yield directly after runTask/yieldLock.
...
The status of the task was erroneously reported as not running until the task was actually executed for the first time (which only happens after the yield lock has been lifted).
2018-04-08 01:30:43 +02:00
Boris-Barboris
788973f628
same measures for ManualEvent
2018-03-30 12:59:24 +00:00
Boris-Barboris
bf9d736c4f
another way around. Fix typo in comment.
2018-03-30 10:06:44 +00:00
Boris-Barboris
489b35539b
fix comparison in doWait
2018-03-30 09:28:45 +00:00
Boris-Barboris
a840c51c5d
fix integer overflow protection absence for LocalManualEvent
2018-03-30 09:17:09 +00:00
Boris-Barboris
eea57f8914
MonoTime in loopWithTimeout, and other read tweaks.
...
MonoTime is more robust and does not involve sophisticated timezone
shenanigans, making it better suited for networking operations.
Fixes #39 .
This commit also distinguishes read timeout exception as Exception child
ReadTimeoutException, wich is thrown from loopWithTimeout function.
Optimistic read branch for tcp socket improves performance on
granular reads.
2018-03-23 06:45:05 +00:00
Sönke Ludwig
2006ace251
Bump version number
2018-03-18 21:36:23 +01:00
Sönke Ludwig
e2eef799f8
Fix cancellation of connectTCP in case of early errors.
...
Certain errors will result in an invalid handle to be returned from eventDriver.sockets.connectStream. In that case it is invalid to call cancelConnect.
Also adds an additional debug log message including a stack trace in case of exceptions thrown from connection handlers.
2018-03-18 12:13:13 +01:00
Sönke Ludwig
88bcae036c
Merge pull request #74 from vibe-d/fix_multithread_destruction
...
Allow destructors to run in foreign threads. Fixes #69 .
2018-03-18 11:09:43 +01:00
Sönke Ludwig
2c63aa5c5c
Allow destructors to run in foreign threads. Fixes #69 .
...
This change modifies destructors to anticipate that they can be called form a foreign thread if the GC is involved. The actual release of the reference will then happen deferred in the original thread.
2018-03-16 18:06:53 +01:00
Thomas Weyn
b7e0194414
Re-introduced setCommandLineArgs from vibe-d:core-0.8.2 (pull/1916)
2018-03-14 22:04:20 +01:00
Sönke Ludwig
8ee5f4460c
Fix compilation of ConnectionPool!struct. Fixes vibe-d/vibe.d#2109 .
...
ConnectionPool!TCPConnection used to work with the old vibe-d:core implementation, but now failed, because TCPConnection is a struct. All assumptions about `Connection` being a class have been remove in this commit.
2018-03-11 00:07:42 +01:00
Sönke Ludwig
eb3620056f
Ensure async lambdas are templates to fix LDC linker errors. Fixes #65 .
...
If the lambda is a concrete function, two different versions will end up for it in the final binary on macOS when compiled with LDC. Using argument inference works around that issue.
2018-03-08 14:24:22 +01:00
Sönke Ludwig
a1a0d52fe6
Merge pull request #67 from vibe-d/issue_66_yield_exit_eventloop
...
Don't exit event loop prematurely.
2018-03-07 10:39:55 +01:00
Sönke Ludwig
7703cc675f
Fix a race-condition in TaskPool.
...
The lock that should surround the foreach loop was given up prematurely.
2018-03-07 10:39:28 +01:00
Sönke Ludwig
66c9aeea57
Don't exit event loop prematurely. Fixes #66 .
...
Idle processing needs to check whether there are still tasks scheduled to be resumed before setting the exit flag when there are no more waiters (I/O etc.).
2018-03-06 23:41:56 +01:00
Sönke Ludwig
595beb2c60
Bump version number.
2018-02-26 20:40:28 +01:00
Sönke Ludwig
6aa5cddf33
Merge pull request #62 from FraMecca/master
...
TCPConnection.waitForDataAsync
2018-02-26 20:33:53 +01:00
Sönke Ludwig
57d516a82b
fixup
2018-02-26 19:40:13 +01:00
Sönke Ludwig
e33cf567ec
Change callback semantics of waitForDataAsync
...
Also adds a documentation comment to specify the semantics.
2018-02-26 13:15:24 +01:00
Francesco Mecca
99e2873cc0
assert and stronger condition on TCPConnection.waitForDataAsync
...
assert and stronger condition on TCPConnection.waitForDataAsync
2018-02-24 21:32:54 +01:00
Francesco Mecca
20e32cf327
added Timer and enum return to TCPConnection.waitForDataAsync
2018-02-23 00:27:04 +00:00
Sönke Ludwig
2653c8c5e0
Always remove task from queue when switching to it. Fixes #58 .
...
Previously the task was only removed if switchTo was called from another task. Now it also gets removed when switchTo (e.g. due to a runTask() call) gets called form outside of a task.
2018-02-23 01:25:13 +01:00
Sönke Ludwig
d2146e3881
Fix shutdown of the worker thread pool.
...
Shuts down the pool before terminating the threads to avoid accessing an event thread waiter slot that is not associated with a valid eventcore driver anymore.
2018-02-22 20:10:08 +01:00
Francesco Mecca
0d6ba62f51
added TCPConnection.waitForDataAsync
2018-02-21 22:17:18 +00:00
Sönke Ludwig
e4eaaddbba
Make high-frequency log messages in the task scheduler optional.
...
Requires -debug=VibeTaskLog to enable them now.
2018-02-14 13:11:51 +01:00
Sönke Ludwig
ff26c31a42
Merge pull request #46 from vibe-d/total_cpus
...
Use std.parallelism.totalCPUs to implement logicalProcessorCount.
2018-02-14 13:09:02 +01:00
Sönke Ludwig
83515e4055
Merge pull request #51 from wilzbach/hexstring
...
Replace deprecated hexstring with hexString
2018-02-14 13:08:30 +01:00
Pavel Chebotarev
13e6c2aa41
Fix incorrect return value in TCPConnection.leastSize()
2018-01-27 18:53:16 +03:00
Sebastian Wilzbach
6107c1d807
Replace deprecated hexstring with hexString
2018-01-25 08:43:13 +01:00
Martin Nowak
30102f9e3a
avoid Buffer type which creates a huge __initZ symbol
2018-01-14 04:43:14 +01:00
Sönke Ludwig
1ed1c85f76
Use std.parallelism.totalCPUs to implement logicalProcessorCount.
...
See vibe-d/vibe.d#2008 .
2018-01-10 18:28:26 +01:00
Sönke Ludwig
2625397f91
Use asyncAwaitAny instead of asyncAwait to work around linker error.
2017-11-25 15:27:17 +01:00
Boris-Barboris
6634cbc645
switch to asyncAwait
2017-11-25 15:27:17 +01:00
Boris-Barboris
55e7866497
implement tcp connect timeout
2017-11-25 15:27:17 +01:00
Sönke Ludwig
dad84e8a46
Adjust DirectoryWatcher implementation for changed FileChange definition in eventcore.
2017-11-21 21:42:44 +01:00
Sönke Ludwig
8c68a4aeef
Bump version number.
2017-11-17 11:56:59 +01:00
Sönke Ludwig
094de42f97
Update change log.
2017-11-17 11:56:18 +01:00
Sönke Ludwig
2a106ebcbb
Add FileInfo.hidden.
2017-11-07 16:14:02 +01:00
Sönke Ludwig
b68d23f515
Add opCast(bool) to FreeListRef and remove opAssign with value type.
2017-10-30 22:58:30 +01:00
Sönke Ludwig
340357d455
Let pipe() return the number of bytes written.
2017-10-30 22:55:54 +01:00
Sönke Ludwig
710c996666
Add assertion message.
2017-10-30 22:55:22 +01:00
Sönke Ludwig
874e174d38
Add const overload for Task.tid.
2017-10-24 09:44:54 +02:00
Sönke Ludwig
db449e3cb3
Fix implementation of TCPListener.bindAddress.
2017-09-28 23:52:39 +02:00
Sönke Ludwig
9fe9783443
Convert Waitable from struct to pure template to avoid heap closures.
...
Also fixes a case where ThreadLocalWaiter.emitSingle overlaps a call to .emit.
2017-09-27 16:41:11 +02:00
Sönke Ludwig
a93b6e1cb1
Move log message to print before shutdown to avoid potential mixup with other log messages during shutdown.
2017-09-21 14:35:53 +02:00
Sönke Ludwig
9e0b5a7821
Fix access violation in the log module when called from a non-D thread.
2017-09-21 14:09:19 +02:00