Commit graph

8 commits

Author SHA1 Message Date
Sönke Ludwig ff8882976d Fix BatchBuffer.read. 2016-10-04 17:50:13 +02:00
Sönke Ludwig 1005f5c674 Fix all ManualEvent related tests. 2016-06-17 22:33:04 +02:00
Sönke Ludwig a74a89cab7 Fix scope issues in asyncAwait. 2016-06-15 18:21:04 +02:00
Sönke Ludwig 48131ce7b8 Implement generic asyncAwaitAny.
This enables waiting for multiple events at the same time. Generic timeout functionality is now also implemented.
2016-06-14 09:26:12 +02:00
Sönke Ludwig 3b0e4e0452 Big refactoring step.
- Moves a lot of stuff from vibe.core.core to vibe.core.task
- Introduces TaskScheduler to unify the scheduling process
- Refines how tasks are scheduled and processed (can push to the front of the task queue and uses a marker task to keep track of the spot up to which to process)
- Start to add proper support for task interrupts and timeouts by properly cancelling in-flight async operations
- Work on ManualEvent - still not functional for the shared case
- Implement proper IP address parsing in NetworkAddress
2016-06-14 08:01:03 +02:00
Sönke Ludwig ba48a6f43a Use BatchBuffer instead of FixedRingBuffer for TCP read. 2016-04-10 17:17:15 +02:00
Sönke Ludwig 27e0019e44 Fix regression in FreeListRef where no memory was allocated for the ref count. Fixes #1432.
Commit 6be5471 switched FreeListRef to use FreeListObjectAlloc underneath, but didn't accound for the extra memory that is needed to store the reference count directly after the object payload. The possible implications of this are memory corruption and memory leaks, although with the predefined allocator setip, this will only happen to types with a POT size or slightly less.

This commit adds an "EXTRA" template type parameter to FreeListObjectAlloc that is used to determine the additional amount of allocated memory, which is set to "int" in the case of FreeListRef.

(cherry picked from commit d78a9ce89b845e4f89a84bd70bbd48c7595463d4)

(cherry picked from commit 613d15926e241c03e75bb2d237d39ba712613aeb)
2016-04-10 14:40:39 +02:00
Sönke Ludwig 7e2d1dd038 Initial commit.
The library is able to support simple TCP servers in the current state. The API is still mostly compatible with mainline vibe.d, but the driver systen has been replaced by the eventcore library and sockets/files/timers/... are now structs with automatic reference counting instead of GC collected classes. The stream interfaces have been removed for now.
2016-03-01 20:30:42 +01:00