src/context.zig: add a waiting_event TODO list.
parent
8b10612456
commit
168bea7e78
|
@ -163,6 +163,27 @@ pub const Context = struct {
|
||||||
// TODO: listening to these file descriptors.
|
// TODO: listening to these file descriptors.
|
||||||
var some_event = Event.init(Event.Type.CONNECTION, 5, 8, null);
|
var some_event = Event.init(Event.Type.CONNECTION, 5, 8, null);
|
||||||
return some_event;
|
return some_event;
|
||||||
|
|
||||||
|
// TODO: set POLLIN & POLLOUT flags in the pollfd structure
|
||||||
|
// for each fd
|
||||||
|
// TODO: before initiate a timer
|
||||||
|
// TODO: poll syscall
|
||||||
|
// TODO: timer = end - start; if 0 => return timer event
|
||||||
|
// TODO: handle messages
|
||||||
|
// => loop over ctx.size
|
||||||
|
// => if pollfd[i].revents is set to POLLIN
|
||||||
|
// => if fd is SERVER => new connection
|
||||||
|
// => if fd is SWITCHED => msg to exchange (or drop the switch)
|
||||||
|
// => if fd is EXTERNAL => let user handle IO operations
|
||||||
|
// => otherwise => new message or disconnection
|
||||||
|
// => if fd revent is POLLOUT
|
||||||
|
// => if SWITCHED => write message for its switch buddy
|
||||||
|
// => otherwise => write message for the msg.fd
|
||||||
|
// if fd revent is POLLHUP
|
||||||
|
// => handle disconnection:
|
||||||
|
// close + remove fd from pollfd + return event
|
||||||
|
// if fd revent is POLLERR or POLLNVAL
|
||||||
|
// => return error event
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn close(self: *Self, index: usize) !void {
|
pub fn close(self: *Self, index: usize) !void {
|
||||||
|
|
Reference in New Issue