add todos in watch process
This commit is contained in:
parent
07c7ba06ad
commit
5f0785aaba
|
@ -210,6 +210,9 @@ fn processInotifyEvent(self: Self, ev: *const std.os.linux.inotify_event, name_p
|
||||||
}
|
}
|
||||||
if (ev.mask & std.os.linux.IN.MOVED_TO == std.os.linux.IN.MOVED_TO) {
|
if (ev.mask & std.os.linux.IN.MOVED_TO == std.os.linux.IN.MOVED_TO) {
|
||||||
// This mem.span makes me deeply uncomfortable, but is how fs.watch does it
|
// This mem.span makes me deeply uncomfortable, but is how fs.watch does it
|
||||||
|
// TODO: This should be a std.mem.sliceTo(@ptrCast([*:0]u8, name_ptr), ev.len);
|
||||||
|
// and returning from C without a sentinal, we can use the same call, like this:
|
||||||
|
// std.mem.sliceTo(@ptrCast([*]u8, name_ptr), len);
|
||||||
const name = std.mem.span(@ptrCast([*:0]u8, name_ptr));
|
const name = std.mem.span(@ptrCast([*:0]u8, name_ptr));
|
||||||
log.debug("MOVED_TO({d}/{d}): {s}", .{ name.len, ev.len, name });
|
log.debug("MOVED_TO({d}/{d}): {s}", .{ name.len, ev.len, name });
|
||||||
for (self.dir_wds) |dir| {
|
for (self.dir_wds) |dir| {
|
||||||
|
@ -334,6 +337,10 @@ fn sendControl(self: Self, control: u8) !void {
|
||||||
/// creates a control socket. This allows for managing the watcher. With it,
|
/// creates a control socket. This allows for managing the watcher. With it,
|
||||||
/// you can gracefully terminate the process and you can add files after the fact
|
/// you can gracefully terminate the process and you can add files after the fact
|
||||||
fn addControlSocket(self: *Self, path: [:0]const u8) !void {
|
fn addControlSocket(self: *Self, path: [:0]const u8) !void {
|
||||||
|
// TODO: I now believe std.net.StreamServer will handle a lot of these details for us.
|
||||||
|
// something like: var server = std.net.StreamServer.init(.{ ... }); server.listen(.{...});
|
||||||
|
// and use server.sockfd.? as my control socket
|
||||||
|
//
|
||||||
// This function theoretically should work without requiring linux...except this inotify call,
|
// This function theoretically should work without requiring linux...except this inotify call,
|
||||||
// which is completely linux specific
|
// which is completely linux specific
|
||||||
self.inotify_fd = self.inotify_fd orelse try std.os.inotify_init1(std.os.linux.IN.NONBLOCK);
|
self.inotify_fd = self.inotify_fd orelse try std.os.inotify_init1(std.os.linux.IN.NONBLOCK);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user