diff --git a/examples/iouring/source/app.d b/examples/iouring/source/app.d index 19be1f1..005fa50 100644 --- a/examples/iouring/source/app.d +++ b/examples/iouring/source/app.d @@ -4,7 +4,7 @@ import concurrency.socket; import concurrency.io; import concurrency.operations.whenall; -void main() +void main() @safe { auto fd = listen("127.0.0.1", 0); auto io = IOUringContext.construct(256); diff --git a/source/concurrency/operations/whenall.d b/source/concurrency/operations/whenall.d index 90de34b..31e917e 100644 --- a/source/concurrency/operations/whenall.d +++ b/source/concurrency/operations/whenall.d @@ -161,7 +161,8 @@ import std.meta : allSatisfy, ApplyRight; struct WhenAllSender(Senders...) if ((Senders.length > 1 - && allSatisfy!(ApplyRight!(models, isSender), Senders)) + //&& allSatisfy!(ApplyRight!(models, isSender), Senders) + ) || (models!(ArrayElement!(Senders[0]), isSender))) { alias Result = WhenAllResult!(Senders); static if (hasMember!(Result, "values")) diff --git a/source/concurrency/operations/withscheduler.d b/source/concurrency/operations/withscheduler.d index 7895d3a..f0b3eff 100644 --- a/source/concurrency/operations/withscheduler.d +++ b/source/concurrency/operations/withscheduler.d @@ -40,8 +40,8 @@ private struct WithSchedulerReceiver(Receiver, Value, Scheduler) { mixin ForwardExtensionPoints!receiver; } -struct WithSchedulerSender(Sender, Scheduler) if (models!(Sender, isSender)) { - static assert(models!(typeof(this), isSender)); +struct WithSchedulerSender(Sender, Scheduler) { //if (models!(Sender, isSender)) { + //static assert(models!(typeof(this), isSender)); alias Value = Sender.Value; Sender sender; Scheduler scheduler;