Commit Graph

14 Commits

Author SHA1 Message Date
T. R. Bernstein
c9bfc8a2dc Add GitHub workflow file to generate docs
Some checks failed
Docs / docs (push) Has been cancelled
Docs / deploy (push) Has been cancelled
2026-03-12 17:01:07 +01:00
T. R. Bernstein
80bde65a7c Add SwiftPackageIndex configuration file 2026-03-12 16:07:30 +01:00
T. R. Bernstein
39fe5c9237 Add open source documentation files 2026-03-12 15:31:10 +01:00
T. R. Bernstein
76f91f67a6 Add integration tests for inofity limits
inotify exposes a /proc interface to limit kernel memory usage. If those
limits are set too low, inotify cannot add all watches. The integration
test verifies, that Inotify yields an error in that case.
2026-03-12 14:52:33 +01:00
T. R. Bernstein
ffac6d17a5 Implement auto subtree watching of a directory
Allow recursively watching a directory while adding newly created
subdirectories to the inotify watch list.
2026-03-12 12:04:08 +01:00
T. R. Bernstein
a8d7fb017f Add data structure for watch descriptor management
For watching whole trees - a change which is upcoming - the watch
descriptor IDs will have to be managed in multiple lists. The
InotifyWatchManager encapsulates the managment logic within a nice API.
2026-03-12 11:32:29 +01:00
T. R. Bernstein
b41b82bd0f Implement recursive watching of a directory 2026-03-12 10:36:12 +01:00
T. R. Bernstein
d57f998fd4 Use C integer types
Instead of using hardcoded fixed width integers, use C integer types.
As the actual integer size of C depends on the implementation, even if
it is often 32bit, we use the C integer types to guard against cases,
where that is not the case.
2026-03-12 00:32:14 +01:00
T. R. Bernstein
e44e1fc9b8 Adapt inotify timeouts in Tests
Inotify event stream is dependent on system usage. Increasing the
timeouts helps not having to repeat the integration tests.
2026-03-12 00:22:22 +01:00
T. R. Bernstein
58a05e9b61 Implement async event streaming 2026-03-12 00:22:17 +01:00
T. R. Bernstein
5247d898cd Implement unwatching a path 2026-03-11 18:42:19 +01:00
T. R. Bernstein
564c409c15 Implement watching a path
Each inotify instance produces events for paths in its watch list. Each
item in the watch list is identified by its watch descriptor. Different
paths can be watched for different events.
2026-03-11 18:42:12 +01:00
T. R. Bernstein
098339f9d1 Implement init/deinit of inotify system
Use RAII to handle inotify resource lifetime, i.e. initialize with actor
creation and deinitialize with actor deletion.
2026-03-11 17:50:17 +01:00
T. R. Bernstein
1a7e5ca5de Scaffold project structure 2026-03-11 16:10:48 +01:00