View source code
Display the source code in std/concurrency.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
std.concurrency.yield
- multiple declarations
Function yield
If the caller is a Fiber and is not a Generator, this function will call scheduler.yield() or Fiber.yield(), as appropriate.
void yield();
Function yield
Yields a value of type T to the caller of the currently executing generator.
void yield(T)
(
ref T value
);
void yield(T)
(
T value
);
Parameters
Name | Description |
---|---|
value | The value to yield. |
Example
import std .range;
InputRange!int myIota = iota(10) .inputRangeObject;
myIota .popFront();
myIota .popFront();
writeln(myIota .moveFront); // 2
writeln(myIota .front); // 2
myIota .popFront();
writeln(myIota .front); // 3
//can be assigned to std.range.interfaces.InputRange directly
myIota = new Generator!int(
{
foreach (i; 0 .. 10) yield(i);
});
myIota .popFront();
myIota .popFront();
writeln(myIota .moveFront); // 2
writeln(myIota .front); // 2
myIota .popFront();
writeln(myIota .front); // 3
size_t[2] counter = [0, 0];
foreach (i, unused; myIota) counter[] += [1, i];
assert(myIota .empty);
writeln(counter); // [7, 21]
Authors
Sean Kelly, Alex Rønne Petersen, Martin Nowak
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.