std/event/loop.zig: remove promise_symbol from suspend and use @handle();
Tracking Issue #1296 ;master
parent
efec3a0e34
commit
a3705b4251
|
@ -331,11 +331,11 @@ pub const Loop = struct {
|
||||||
|
|
||||||
pub async fn waitFd(self: *Loop, fd: i32) !void {
|
pub async fn waitFd(self: *Loop, fd: i32) !void {
|
||||||
defer self.removeFd(fd);
|
defer self.removeFd(fd);
|
||||||
suspend |p| {
|
suspend {
|
||||||
// TODO explicitly put this memory in the coroutine frame #1194
|
// TODO explicitly put this memory in the coroutine frame #1194
|
||||||
var resume_node = ResumeNode{
|
var resume_node = ResumeNode{
|
||||||
.id = ResumeNode.Id.Basic,
|
.id = ResumeNode.Id.Basic,
|
||||||
.handle = p,
|
.handle = @handle(),
|
||||||
};
|
};
|
||||||
try self.addFd(fd, &resume_node);
|
try self.addFd(fd, &resume_node);
|
||||||
}
|
}
|
||||||
|
@ -417,11 +417,11 @@ pub const Loop = struct {
|
||||||
pub fn call(self: *Loop, comptime func: var, args: ...) !(promise->@typeOf(func).ReturnType) {
|
pub fn call(self: *Loop, comptime func: var, args: ...) !(promise->@typeOf(func).ReturnType) {
|
||||||
const S = struct {
|
const S = struct {
|
||||||
async fn asyncFunc(loop: *Loop, handle: *promise->@typeOf(func).ReturnType, args2: ...) @typeOf(func).ReturnType {
|
async fn asyncFunc(loop: *Loop, handle: *promise->@typeOf(func).ReturnType, args2: ...) @typeOf(func).ReturnType {
|
||||||
suspend |p| {
|
suspend {
|
||||||
handle.* = p;
|
handle.* = @handle();
|
||||||
var my_tick_node = Loop.NextTickNode{
|
var my_tick_node = Loop.NextTickNode{
|
||||||
.next = undefined,
|
.next = undefined,
|
||||||
.data = p,
|
.data = @handle(),
|
||||||
};
|
};
|
||||||
loop.onNextTick(&my_tick_node);
|
loop.onNextTick(&my_tick_node);
|
||||||
}
|
}
|
||||||
|
@ -439,10 +439,10 @@ pub const Loop = struct {
|
||||||
/// CPU bound tasks would be waiting in the event loop but never get started because no async I/O
|
/// CPU bound tasks would be waiting in the event loop but never get started because no async I/O
|
||||||
/// is performed.
|
/// is performed.
|
||||||
pub async fn yield(self: *Loop) void {
|
pub async fn yield(self: *Loop) void {
|
||||||
suspend |p| {
|
suspend {
|
||||||
var my_tick_node = Loop.NextTickNode{
|
var my_tick_node = Loop.NextTickNode{
|
||||||
.next = undefined,
|
.next = undefined,
|
||||||
.data = p,
|
.data = @handle(),
|
||||||
};
|
};
|
||||||
self.onNextTick(&my_tick_node);
|
self.onNextTick(&my_tick_node);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue