From 82936041e446ce8290b94d92a7df48ca22735c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Ludwig?= Date: Tue, 18 Jul 2017 23:12:26 +0200 Subject: [PATCH] Add some more notes. --- source/vibe/core/channel.d | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/vibe/core/channel.d b/source/vibe/core/channel.d index 66eff08..e66c295 100644 --- a/source/vibe/core/channel.d +++ b/source/vibe/core/channel.d @@ -11,10 +11,13 @@ module vibe.core.channel; // TODO: implement a multi-channel wait, e.g. // TaggedAlgebraic!(...) consumeAny(ch1, ch2, ch3); - requires a waitOnMultipleConditions function // TODO: implement close() +// TODO: fully support non-copyable types using swap/move where appropriate +// TODO: add unit tests +// Q: Should this be exposed as a class, or as an RC struct? private final class Channel(T, size_t buffer_size = 100) { import vibe.core.concurrency : isWeaklyIsolated; - //static assert(isWeaklyIsolated!T, "Channel data type "~T.stringof~" is not safe to pass between threads."); + static assert(isWeaklyIsolated!T, "Channel data type "~T.stringof~" is not safe to pass between threads."); Mutex m_mutex; TaskCondition m_condition;