arm: cleanup dead async code
This commit is contained in:
parent
83c80f15be
commit
8c25ce8d21
27
arm/async.cc
27
arm/async.cc
@ -166,30 +166,3 @@ void resume(AwaitableType type) {
|
||||
}
|
||||
|
||||
} // namespace async
|
||||
|
||||
#if 0
|
||||
|
||||
task<buffer> readline() {
|
||||
int size = 0;
|
||||
char c;
|
||||
|
||||
buffer buff = buffer::make(32);
|
||||
|
||||
// fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK);
|
||||
|
||||
while (true) {
|
||||
int n = read(0, &c, 1);
|
||||
if (n < 1) {
|
||||
co_await co_waitio();
|
||||
continue;
|
||||
}
|
||||
buff.data[size++] = static_cast<std::byte>(c);
|
||||
|
||||
if (c == '\n') {
|
||||
buff.data = buff.data.subspan(0, size);
|
||||
co_return buff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // 0
|
||||
|
61
arm/async.h
61
arm/async.h
@ -27,66 +27,6 @@ struct task_final_suspend {
|
||||
std::coroutine_handle<> parent;
|
||||
};
|
||||
|
||||
#if 0
|
||||
template <typename T>
|
||||
struct gimme {
|
||||
// child interface
|
||||
bool await_ready() { return false; }
|
||||
void await_suspend(std::coroutine_handle<> h) {
|
||||
ha = h;
|
||||
waiting = true;
|
||||
TRACE(tracing::TraceEvent::kAsyncGimmeWaiting);
|
||||
|
||||
if (parent) {
|
||||
TRACE(tracing::TraceEvent::kAsyncCallParent);
|
||||
parent.resume();
|
||||
TRACE(tracing::TraceEvent::kAsyncCallParentDone);
|
||||
}
|
||||
}
|
||||
T await_resume() {
|
||||
waiting = false;
|
||||
TRACE(tracing::TraceEvent::kAsyncGimmeResume);
|
||||
return std::move(stuff);
|
||||
}
|
||||
|
||||
// parent interface
|
||||
auto feed(T&& s) {
|
||||
struct awaitable {
|
||||
bool await_ready() {
|
||||
if (g.waiting) {
|
||||
return true;
|
||||
}
|
||||
// TODO: handle g.ha.done()
|
||||
return false;
|
||||
}
|
||||
void await_suspend(std::coroutine_handle<> h) {
|
||||
g.parent = h;
|
||||
}
|
||||
void await_resume() {}
|
||||
|
||||
gimme<T>& g;
|
||||
};
|
||||
|
||||
if (!waiting) {
|
||||
__builtin_trap();
|
||||
}
|
||||
if (!ha) {
|
||||
__builtin_trap();
|
||||
}
|
||||
stuff = s;
|
||||
parent = {};
|
||||
ha.resume();
|
||||
|
||||
return awaitable{.g = *this};
|
||||
}
|
||||
|
||||
bool waiting = false;
|
||||
std::coroutine_handle<> ha;
|
||||
T stuff;
|
||||
std::coroutine_handle<> parent;
|
||||
};
|
||||
#else
|
||||
|
||||
template <typename T>
|
||||
struct gimme {
|
||||
// child interface
|
||||
@ -118,7 +58,6 @@ struct gimme {
|
||||
std::coroutine_handle<> ha;
|
||||
T stuff;
|
||||
};
|
||||
#endif
|
||||
|
||||
template <typename T = void>
|
||||
struct task;
|
||||
|
Loading…
Reference in New Issue
Block a user