summaryrefslogtreecommitdiff
path: root/src/termio/Thread.zig
diff options
context:
space:
mode:
authorMitchell Hashimoto <mitchell.hashimoto@gmail.com>2024-07-13 09:29:54 -0700
committerMitchell Hashimoto <mitchell.hashimoto@gmail.com>2024-07-13 15:19:37 -0700
commit49c92fd0e67592fc9eebab4540db7de426b0283e (patch)
treeb4a1e55769472f71dc5d6eb11f9ed664bade205d /src/termio/Thread.zig
parent8a5826b5253a17a78e725e51f1f8af8df367f13b (diff)
termio: rename Exec to Termio throughout
Diffstat (limited to 'src/termio/Thread.zig')
-rw-r--r--src/termio/Thread.zig40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/termio/Thread.zig b/src/termio/Thread.zig
index 45b9fd1ae..aceeaa636 100644
--- a/src/termio/Thread.zig
+++ b/src/termio/Thread.zig
@@ -58,8 +58,8 @@ sync_reset: xev.Timer,
sync_reset_c: xev.Completion = .{},
sync_reset_cancel_c: xev.Completion = .{},
-/// The underlying IO implementation.
-impl: *termio.Impl,
+/// The main termio state.
+termio: *termio.Termio,
/// The mailbox that can be used to send this thread messages. Note
/// this is a blocking queue so if it is full you will get errors (or block).
@@ -83,7 +83,7 @@ flags: packed struct {
/// is up to the caller to start the thread with the threadMain entrypoint.
pub fn init(
alloc: Allocator,
- impl: *termio.Impl,
+ t: *termio.Termio,
) !Thread {
// Create our event loop.
var loop = try xev.Loop.init(.{});
@@ -116,7 +116,7 @@ pub fn init(
.stop = stop_h,
.coalesce = coalesce_h,
.sync_reset = sync_reset_h,
- .impl = impl,
+ .termio = t,
.mailbox = mailbox,
};
}
@@ -150,9 +150,9 @@ pub fn threadMain(self: *Thread) void {
// the error to the surface thread and let the apprt deal with it
// in some way but this works for now. Without this, the user would
// just see a blank terminal window.
- self.impl.renderer_state.mutex.lock();
- defer self.impl.renderer_state.mutex.unlock();
- const t = self.impl.renderer_state.terminal;
+ self.termio.renderer_state.mutex.lock();
+ defer self.termio.renderer_state.mutex.unlock();
+ const t = self.termio.renderer_state.terminal;
// Hide the cursor
t.modes.set(.cursor_visible, false);
@@ -226,9 +226,9 @@ fn threadMain_(self: *Thread) !void {
// Run our thread start/end callbacks. This allows the implementation
// to hook into the event loop as needed.
- var data = try self.impl.threadEnter(self);
+ var data = try self.termio.threadEnter(self);
defer data.deinit();
- defer self.impl.threadExit(data);
+ defer self.termio.threadExit(data);
// Run
log.debug("starting IO thread", .{});
@@ -256,21 +256,21 @@ fn drainMailbox(self: *Thread) !void {
switch (message) {
.change_config => |config| {
defer config.alloc.destroy(config.ptr);
- try self.impl.changeConfig(config.ptr);
+ try self.termio.changeConfig(config.ptr);
},
.inspector => |v| self.flags.has_inspector = v,
.resize => |v| self.handleResize(v),
- .clear_screen => |v| try self.impl.clearScreen(v.history),
- .scroll_viewport => |v| try self.impl.scrollViewport(v),
- .jump_to_prompt => |v| try self.impl.jumpToPrompt(v),
+ .clear_screen => |v| try self.termio.clearScreen(v.history),
+ .scroll_viewport => |v| try self.termio.scrollViewport(v),
+ .jump_to_prompt => |v| try self.termio.jumpToPrompt(v),
.start_synchronized_output => self.startSynchronizedOutput(),
.linefeed_mode => |v| self.flags.linefeed_mode = v,
- .child_exited_abnormally => |v| try self.impl.childExitedAbnormally(v.exit_code, v.runtime_ms),
- .write_small => |v| try self.impl.queueWrite(v.data[0..v.len], self.flags.linefeed_mode),
- .write_stable => |v| try self.impl.queueWrite(v, self.flags.linefeed_mode),
+ .child_exited_abnormally => |v| try self.termio.childExitedAbnormally(v.exit_code, v.runtime_ms),
+ .write_small => |v| try self.termio.queueWrite(v.data[0..v.len], self.flags.linefeed_mode),
+ .write_stable => |v| try self.termio.queueWrite(v, self.flags.linefeed_mode),
.write_alloc => |v| {
defer v.alloc.free(v.data);
- try self.impl.queueWrite(v.data, self.flags.linefeed_mode);
+ try self.termio.queueWrite(v.data, self.flags.linefeed_mode);
},
}
}
@@ -278,7 +278,7 @@ fn drainMailbox(self: *Thread) !void {
// Trigger a redraw after we've drained so we don't waste cyces
// messaging a redraw.
if (redraw) {
- try self.impl.renderer_wakeup.notify();
+ try self.termio.renderer_wakeup.notify();
}
}
@@ -328,7 +328,7 @@ fn syncResetCallback(
};
const self = self_ orelse return .disarm;
- self.impl.resetSynchronizedOutput();
+ self.termio.resetSynchronizedOutput();
return .disarm;
}
@@ -350,7 +350,7 @@ fn coalesceCallback(
if (self.coalesce_data.resize) |v| {
self.coalesce_data.resize = null;
- self.impl.resize(v.grid_size, v.screen_size, v.padding) catch |err| {
+ self.termio.resize(v.grid_size, v.screen_size, v.padding) catch |err| {
log.warn("error during resize err={}", .{err});
};
}