Sönke Ludwig
32858b7aee
Rework the path segment encoding/decoding API.
...
- Deprecates Format.decodeSegment (returning a range of GemericPath.Segment) and added decodeSingleSegment instead, which returns a string instead.
- Adds Format.encodeSegment to encode a single path segment
2019-09-19 15:32:59 +02:00
Sönke Ludwig
5640516ba8
Remove SpinLock and use core.sync.mutex.Mutex instead.
...
The places that used it showed too much contention in load tests, so that the spin lock was more expensive that the regular OS mutex/futex.
2019-09-19 11:25:14 +02:00
Sönke Ludwig
04be22b00e
Bump version number.
2019-09-17 19:37:13 +02:00
Sönke Ludwig
db994eaa80
Fix compile error on old compiler versions
2019-09-17 15:22:41 +02:00
Geod24
e7294bb9bd
Clean up std.json deprecation
2019-09-03 01:35:58 +09:00
JinShil
bb25789132
Replace sizediff_t
with ptrdiff_t
2019-08-31 12:30:50 +09:00
JinShil
eb4344653e
Replace hash_t
with size_t
2019-08-31 12:29:15 +09:00
Sönke Ludwig
3dff74fc0f
Bump version number.
2019-08-25 17:12:49 +02:00
Sönke Ludwig
d9e545bf60
Fix getFileInfo's exception handling and reduce overhead of the background work.
...
Instead of asyncWork, now uses a worker task directly and signals the finalization of the result using message passing. This avoids the roundtrip required to return the task handle, as well as the heap allocated result buffer of Future!T.
2019-08-25 12:02:08 +02:00
Sönke Ludwig
d7dfb6cd23
Bump version number.
2019-08-24 16:36:48 +02:00
Sönke Ludwig
ce1adf8c3b
Merge pull request #172 from vibe-d/async_file_operations
...
Avoid all blocking file operations outside of worker threads
2019-08-21 20:59:45 +02:00
Sönke Ludwig
a2f970b7b2
Merge pull request #165 from vibe-d/pure_parent_path
...
Make GenericPath.parentPath pure.
2019-08-21 19:26:00 +02:00
Sönke Ludwig
84907ddbe3
Merge pull request #168 from v1ne/fix-appending-to-file
...
FileStream: Adjust file offset when appending to a file
2019-08-21 19:25:17 +02:00
Sönke Ludwig
f6b97b04c3
Make GenericPath.parentPath pure.
2019-08-21 13:57:54 +02:00
Sönke Ludwig
e3a38b374e
Let all non-aio file system functions run in worker threads.
...
This avoids stalling the event loop in case of lengthy I/O (network shares, spinning up hard drives etc).
2019-08-21 13:34:00 +02:00
Sönke Ludwig
881e3da5f9
Make async marked safe if possible and add asyncWork.
...
asyncWork is the same as async, except that it guarantees that the computation happens in a worker thread.
2019-08-21 13:34:00 +02:00
Sönke Ludwig
4f5636dadf
Mark async/Future and runWorkerTaskH as safe.
2019-08-21 13:34:00 +02:00
Tomáš Chaloupka
4e8302d10d
unlock ConnectionPool on failure
2019-07-31 14:41:26 +02:00
v1ne
513bebcb95
FileStream: Approximate the file offset better when appending
...
Instead of starting at zero, start at the current file size. This offset
is stored in FileStream. It is only an approximation because concurrent
writes could advance the file without FileStream's knowledge.
Add a test that shows that the offset is approximated as expected and that
appending to an existing file works, too.
This is also a regression test which shows that appending to an existing
file works as expected. See vibe-d/eventcore#115 .
2019-07-26 00:38:15 +02:00
v1ne
ce9faec1c1
FileStream: Forbid seek(.) or truncate(.) when appending to a file
...
Those functions do not work for files opened for appending. Make this clear.
2019-07-26 00:29:59 +02:00
v1ne
3ebb065509
Clean up: Use "enforce"
2019-07-26 00:29:59 +02:00
Sönke Ludwig
e5f45718f6
Bump version number.
2019-06-21 21:44:27 +02:00
Sönke Ludwig
04d01b0f31
Handle terminated eventcore drivers gracefully when releasing handles.
...
Instead of crashing, this now prints a warning message. See #135 .
2019-06-20 11:56:22 +02:00
Leonid Kramer
c39fdb2208
Merge pull request #163 from vibe-d/issue157-empty-consumeOne-on-closed-channel
...
Fix empty-consumeOne channel usage pattern for a single consumer
2019-06-20 09:31:13 +02:00
Sönke Ludwig
37ad77c701
Let empty block to make sure the following consumeOne succeeds.
...
This change ensures that a return value of false guarantees the next call to consumeOne to succeed, meaning that the combination of empty/consumeOne is sound in a single-consumer scenario. This also updates the documentation to stress that tryConsumeOne is still the preferred API.
2019-06-16 23:00:05 +02:00
Sönke Ludwig
8c63f79ea7
Avoid yielding in the task finalization phase. Fixes #161 .
...
Makes sure that the task finalization finishes (including notifying possibly multiple joiners) before the fiber yields, because it won't be resumed by the scheduler before the next task gets assigned to the fiber.
2019-06-16 22:44:11 +02:00
Sönke Ludwig
79bb21c6a3
Bump version number.
2019-06-16 15:10:50 +02:00
Sönke Ludwig
989577ff23
Fix copyFile setting file times of write protected files.
2019-06-16 15:10:50 +02:00
Sönke Ludwig
0d78dfe4a9
Let TCPConnection.leastSize time out according to the readTimeout property.
...
Fixes #153 .
2019-06-16 09:55:00 +02:00
Sönke Ludwig
5393109669
Add TCPConnection.waitForDataEx.
...
Allows to distinguish between timeout and no more data cases.
2019-06-04 15:20:54 +02:00
Sönke Ludwig
33014fde5f
Merge pull request #154 from BenjaminSchaaf/process
...
Implement vibe.core.process for subprocess handling similar to std.process
2019-06-04 11:18:34 +02:00
Benjamin Schaaf
68dd4baa44
s/registerProcess/adoptProcessID/g
2019-06-04 10:13:00 +10:00
Benjamin Schaaf
0d4840b81d
Address review comments
2019-06-02 14:42:41 +10:00
Geod24
40f82b22e5
Remove useless imports to std.variant
2019-05-28 14:24:42 +09:00
Sönke Ludwig
08db20629b
Implement logException.
...
Logs an exception along with an error message and the full stack trace. Performs proper exception handling for the latter to stay nothrow.
2019-05-25 22:12:43 +02:00
Sönke Ludwig
c3832cbb8b
Bump version number.
2019-05-19 11:51:16 +02:00
Benjamin Schaaf
83e2d391e6
2nd candidate windows compilation fix
2019-05-05 17:52:44 +10:00
Benjamin Schaaf
7f11fcf7a6
Candidate windows compilation fix
2019-05-05 15:37:35 +10:00
Benjamin Schaaf
c3f5ebb9fd
Implement vibe.core.process for subprocess handling similar to std.process
2019-05-05 15:27:57 +10:00
Sönke Ludwig
b86610011f
Merge pull request #150 from rracariu/patch-1
...
Add way to disable port and address reuse
2019-04-26 09:56:04 +02:00
Denis Feklushkin
fc9bef86af
Logger: avoid formatting for strings without additional args
2019-04-23 23:01:44 +07:00
Radu Racariu
5e8e75e3e8
Add way to disable port and address reuse
2019-04-17 16:40:04 +03:00
Sönke Ludwig
f734b4a142
Improve thread-correctness of Task/TaskFiber.
...
- Task.join and Task.interrupt are now thread-safe
- TaskFiber.task returns Task.init if no task is running (avoids bogus resumes of the TaskFiber by the scheduler)
To enable thread-safe join/interrupt, the task counter is now stored together with the necessary flags within a single shared ulong that is manipulated atomically.
2019-04-13 20:53:01 +02:00
Sönke Ludwig
a202d33b3e
Fix a (harmless) race-condition.
...
ThreadLocalWaiter.unused may only be accessed from the owner thread.
2019-04-13 17:01:50 +02:00
Sönke Ludwig
1ca950867a
Fix typo.
2019-04-05 09:47:37 +02:00
Sönke Ludwig
a86f25b3b4
Fix range violation in makeFileInfo and add some unit tests.
2019-04-05 09:47:32 +02:00
Sönke Ludwig
bf30127534
Add ConnectionPool.removeUnused.
...
Allows to disconnect all connections that are not currently in use. In particular, it allows to close all connections at shutdown to avoid leaking socket descriptors.
2019-03-28 14:11:20 +01:00
Sönke Ludwig
e03caac035
Bump version number.
2019-03-26 15:37:30 +01:00
Sönke Ludwig
8e4adf000f
Make the DirEntry->FileInfo conversion nothrow.
...
Avoids listDirectory/iterateDirectory getting interrupted when stumbling over inaccessible files. The `name` field of the returned file info value is always set, so that these files can still be identified.
2019-03-25 09:45:47 +01:00
The Dlang Bot
5b146ab002
Merge pull request #141 from FraMecca/master
...
support isFile
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2019-03-21 20:22:21 +01:00
Francesco Mecca
6292320bb2
support isFile
2019-03-21 17:39:44 +01:00
Sönke Ludwig
caf291dd22
Bump version number.
2019-03-10 16:00:30 +01:00
Sönke Ludwig
02f5b4f91d
Avoid superfluous notifyAll
calls in Channel.
...
Slightly reduces the notification overhead in multiple-reader or multiple-writer scenarios.
2019-03-10 16:00:12 +01:00
Leonid Kramer
f558ce6c3f
Merge pull request #139 from vibe-d/busy_loop_interleave
...
Fix proper interleaving of busy yield loops inside and outside of tasks.
2019-03-09 21:41:47 +01:00
Sönke Ludwig
cae9f28885
Fix proper interleaving of busy yield loops inside and outside of tasks.
2019-03-06 12:35:37 +01:00
Steven Dwy
111478ef41
Fix #109 - TCPConnectionFunction is actually a delegate
2019-02-24 02:55:47 -08:00
Joseph Rushton Wakeling
d8e4013c92
Fix runApplication handling of unrecognized command-line args
...
`runApplication` takes an `args_out` parameter which, if non-null, is
supposed to be set to match unrecognized command-line args. However,
the parameter is never passed to `finalizeCommandLineOptions`, which
will therefore log an error and throw an exception if any command line
arguments are unrecognized.
This patch fixes the oversight, ensuring that `runApplication` will
correctly populate a non-null `args_out` parameter with unrecognized
command-line arguments, and not throw an exception in this case.
2019-02-22 16:33:01 +01:00
Sönke Ludwig
bfcf08def0
Bump version number.
2019-01-26 19:28:43 +01:00
Sönke Ludwig
92bb067f4b
Make Channel.tryConsumeOne/consumeAll/close/empty/bufferFill nothrow.
2019-01-26 18:29:28 +01:00
Sönke Ludwig
1a463cafc9
Make TaskCondition.wait/notify/notifyAll nothrow.
2019-01-26 18:04:50 +01:00
Sönke Ludwig
c6a29e1c3b
Make createChannel safe and add Channel.bufferFill.
2019-01-26 18:04:50 +01:00
Sönke Ludwig
5437b9ecb6
Merge pull request #129 from vibe-d/run_worker_task_h
...
Implement runWorkerTaskDistH.
2019-01-26 18:04:22 +01:00
Sönke Ludwig
a54fa6b7de
Implement runWorkerTaskDistH.
...
Variant of runWorkerTask that allows to get the handles of the created tasks.
2019-01-26 18:02:47 +01:00
Sönke Ludwig
177e761716
Merge pull request #128 from WebFreak001/fix-net-regression
...
remove refsLeft assert
2019-01-23 21:22:55 +01:00
WebFreak001
611505c038
remove refsLeft assert
...
It seems when running in a vibe-d app that the assert fails
Even though I would like there to be a check, closing the vibe.d
app afterwards shows no leaked handles so I think it's fine.
2019-01-22 20:16:38 +01:00
Sönke Ludwig
1284858d2c
Avoid TLS overhead for TimerCallbackH and make it fully private.
2019-01-22 19:46:52 +01:00
Sönke Ludwig
b5ccb784a1
Allow Task.interrupt to be called within a yieldLock.
2019-01-22 18:06:55 +01:00
Sönke Ludwig
03ffe70dc1
Revert to execute timer callbacks in tasks and add createLeanTimer instead.
...
Fixes #125 .
2019-01-22 18:06:55 +01:00
Sönke Ludwig
1a87ee5b3f
Make yieldLock() safe and nothrow.
2019-01-22 18:06:54 +01:00
Sönke Ludwig
857be9459e
Improve convenience of the Channel API.
...
- allows all methods to be called on a `shared(Channel!T)` instance.
- `Channel` pre-defines the `buffer_size` argument to 100, matching `createChannel`
2019-01-22 10:50:46 +01:00
Sönke Ludwig
27ec5fe2d2
Bump version number.
2019-01-20 14:50:56 +01:00
Sönke Ludwig
3503001ec6
Add contract to Channel.consumeAll to force the input buffer to be empty.
2019-01-20 14:31:29 +01:00
The Dlang Bot
c21e1aa06d
Merge pull request #25 from vibe-d/channels
...
Implement typed cross-task channels
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2019-01-20 13:51:36 +01:00
Sönke Ludwig
48908a7f15
Bump version number.
2019-01-20 13:26:44 +01:00
Sönke Ludwig
3be1de2fdb
Refine the semantics of consumeAll.
2019-01-20 11:57:16 +01:00
Sönke Ludwig
568cdb112b
Merge pull request #116 from WebFreak001/fix-115
...
release ref on failing connectTCP
2019-01-19 15:06:39 +01:00
Sönke Ludwig
28260bd612
Use a robust check IP vs. host name check for resolveHost. Fixes #117 .
2019-01-16 22:31:14 +01:00
Sönke Ludwig
f31db98144
Add documentation, basic unit test, createChannel(), close() and tryConsumeOne().
2019-01-14 22:16:45 +01:00
Sönke Ludwig
dee54e505a
Make FixedRingBuffer compatible with non-copyable structs.
2019-01-14 22:15:38 +01:00
Sönke Ludwig
82936041e4
Add some more notes.
2019-01-14 20:42:31 +01:00
Sönke Ludwig
bce39e512c
Implement a simple thread-safe cross-task channel.
2019-01-14 20:42:31 +01:00
The Dlang Bot
8edca75696
Merge pull request #119 from vibe-d/issue-118-interruptible-task-mutex-use
...
Improve robustness of the sync module. Fixes #118 .
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2019-01-14 20:21:04 +01:00
Sönke Ludwig
2f552ac408
Properly handle directory watcher creation failures.
2019-01-14 14:59:03 +01:00
Sönke Ludwig
9583df3c44
Preserve times and attributes in copyFile.
2019-01-14 14:59:02 +01:00
Sönke Ludwig
dfd7d97225
Fix parameter documentation syntax. Fixes #103 .
2019-01-14 10:22:13 +01:00
Sönke Ludwig
cccf45cfea
Add a motivational introduction to the sync module.
...
Especially mention the issues of using `core.sync.*`.
2019-01-14 10:22:13 +01:00
Sönke Ludwig
6c0bdf2976
Add documentation and unittest example to scopedMutexLock.
2019-01-14 10:22:12 +01:00
Sönke Ludwig
fb64c07d3c
Make scopedMutexLock work with InterruptibleTaskMutex.
2019-01-14 10:22:12 +01:00
Sönke Ludwig
452fa411c2
Avoid overload conflict when using TaskMutex together with InterruptibleTaskCondition.
2019-01-14 10:22:12 +01:00
Sönke Ludwig
ffa5bd5c58
Add a trap to detect invalid uses of InterruptibleTaskMutex in conjunction with synchronized.
2019-01-14 10:22:12 +01:00
Sönke Ludwig
c899798be7
Avoid blocking copy in moveFile.
2019-01-14 00:34:15 +01:00
WebFreak001
4d4401c31f
Fix assert not compiling in releaseRef
2019-01-09 00:28:27 +01:00
WebFreak001
9d6b34c73a
release ref on failing connectTCP
...
fix #115
2019-01-09 00:18:43 +01:00
Benjamin Schaaf
12a8825f86
Fix error message in FileStream.write
2019-01-07 10:26:16 +11:00
Sönke Ludwig
e5ce1394b1
Bump version number.
2018-12-28 14:09:14 +01:00
The Dlang Bot
e5d53249fc
Merge pull request #113 from vibe-d/file_truncate
...
Add FileStream.truncate
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2018-12-28 14:03:19 +01:00
Sönke Ludwig
f35e8f1d69
Add FileStream.truncate.
2018-12-28 10:14:50 +01:00
Hiroki Noda
a408aac808
Use monotonic clock for timeout
2018-12-24 06:22:53 +09:00
Sönke Ludwig
0d3338a16b
Merge pull request #111 from WebFreak001/fix-110
...
Make waitForData not assert fail on close fix #110
2018-12-20 10:14:08 +01:00
WebFreak001
bc3b319783
Fix potential crash if context is null on closed socket
...
If the other side closes the connection this might happen
Without this check the following m_context.readBuffer would segfault
2018-12-20 02:20:41 +01:00
WebFreak001
c8ab6ae2f8
Make waitForData not assert fail on close fix #110
2018-12-20 02:10:40 +01:00
Mathias L. Baumann
e2834a245b
UDP connect wrongly passes port as addr family to resolveHost
2018-12-08 10:14:59 +01:00
Sönke Ludwig
26b6190743
Bump version number.
2018-11-23 22:28:33 +01:00
Sönke Ludwig
b5442b5efd
Make sure that pending but unreferenced timers still invoke their callback. Fixes #104 .
2018-11-23 15:52:18 +01:00
Sönke Ludwig
aca672416c
Fix host name conversion code for SyslogLogger.
...
See vibe-d/vibe.d#2220
2018-11-07 09:41:57 +01:00
Martin Nowak
277e998167
fix relying on implicit const conversion of JSONValue
...
- "key" in JSONValue returns const(JSONValue)*
- fromValue expected non-const JSONValue
- implicit conversion of const(JSONValue) to JSONValue to be fixed
with https://github.com/dlang/phobos/pull/6716
2018-11-01 12:59:44 +01:00
Sönke Ludwig
c3272f7d1f
Fix assertion in SpinLock when called from a signal handler.
...
Since the signal handler can be called in any thread of the application, it may happen so in a non-D thread where Thread.getThis() returns null. This change works around this and also removes the need to call SpinLock.setup on thread startup.
2018-10-30 12:39:08 +01:00
Sönke Ludwig
8c4b147605
Bump version number.
2018-10-27 20:14:09 +02:00
Sönke Ludwig
f5665aa7c1
Fix compilation on older DMD frontends.
2018-10-27 16:31:59 +02:00
Sönke Ludwig
78fef30310
Implement callback based timers without relying on a task. Fixes #86 .
...
In the previous implementation, the callback tasks were starving as soon as the last external reference to a non-pending timer was given up.
2018-10-27 15:48:21 +02:00
Sönke Ludwig
6caff0b105
Fix synchronization and shutdown issues in TaskPool.
...
- terminate() would hang if called from a worker thread because it would attempt to self-join
- the handleWorkerTasks could miss signal emits, resulting in a hanging task queue or a missed termination signal
2018-10-27 00:42:06 +02:00
Sönke Ludwig
9a4217cd88
Merge pull request #95 from vibe-d/remove_task_pool_event_loop
...
Avoid starting an explicit event loop in worker threads.
2018-10-23 21:54:51 +02:00
Sönke Ludwig
849bca4855
Avoid starting an explicit event loop in worker threads.
...
This reduces the overhead of task pool threads slightly and simplifies stack traces in case of errors.
2018-10-23 11:27:28 +02:00
Sönke Ludwig
eae11d3ba3
Fix deprecation warnings on DMD 2.082.0
2018-10-23 11:25:54 +02:00
Sönke Ludwig
c4af4b2a02
Fix WindowsPath.bySegment of an empty path returning a bogus empty segment.
2018-10-01 21:54:29 +02:00
Sönke Ludwig
2480f6bb67
Allow switchToTask to be called within a yield lock.
...
Enables waking up other tasks from within a yield lock (executed after the yield lock is lifted).
2018-09-09 11:35:39 +02:00
Sönke Ludwig
897fee84ea
Free resources associated with waitForDataAsync as early as possible.
...
Instead of letting the GC clean up at an undefined point in time.
2018-09-03 13:45:53 +02:00
Sönke Ludwig
0b638634c9
Fix waitForDataAsync compilation error for callbacks that have scoped destruction.
2018-09-03 12:35:05 +02:00
Sönke Ludwig
9b2aa13ef4
Fix possible infinite loop in TaskScheduler.process.
...
Fixes a discrepancy in TaskFiberQueue between empty and length, which causes process() to never return, thus processing events without timeout indefinitely.
2018-08-26 13:03:14 +02:00
Sönke Ludwig
fae7d3e93d
Revert non-compiling change.
2018-07-09 11:58:25 +02:00
Sönke Ludwig
20558e4416
Update change log and bump version number
2018-07-09 09:20:55 +02:00
Sönke Ludwig
5f18693c49
Mark the Path(Segment) constructor as nothrow.
2018-07-09 09:19:35 +02:00
Sönke Ludwig
360f129381
Fix typo
2018-07-09 09:18:59 +02:00
Anton Fediushin
7514f1183e
Fix logger colours to make it look good on black and white background
2018-06-09 15:54:24 +02:00
Sönke Ludwig
ecb46db199
Bump version number.
2018-06-05 12:45:01 +02:00
Sönke Ludwig
61bfbbbac3
Merge pull request #81 from vibe-d/fix_no_loop_message_processing
...
Fix event processing when calling yield() outside of an event loop.
2018-06-05 12:44:12 +02:00
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
ebd7cd7393
Fix event processing when calling yield() outside of an event loop.
...
The exit flag was erroneously set, disabling any event processing during yield() calls when not inside an event loop.
2018-06-05 11:37:58 +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
58dc8459c2
Merge pull request #73 from vibe-d/interfaceproxy_tests
...
Add unit test for postblit behavior of InterfaceProxy.
2018-03-17 14:30:13 +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
Sönke Ludwig
967654f175
Add unit test for postblit behavior of InterfaceProxy.
2018-03-16 18:00:56 +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
eb046e2295
Fix deprecation warnings on DMD 2.079.0.
2018-03-06 20:13:59 +01:00
Sönke Ludwig
595beb2c60
Bump version number.
2018-02-26 20:40:28 +01:00