AnyPS5/core/libs/prx/libkernel/Equeue
Dean Galvin 59fcdea9c4 fix(libkernel): pair the inotify halves of a rename in a watched directory
inotify queues IN_MOVED_FROM and IN_MOVED_TO of a rename one after the
other. The watcher thread could read the first before the second was
queued and report a rename inside the directory as a move to another
directory (NOTE_WRITE | NOTE_EXTEND instead of NOTE_WRITE), which made
guest_kqueue abort on loaded runners.

The watcher now reads the queue until it is empty and, when a move half
has no partner, calls getdents64 on the directory before reading again:
that takes the directory lock rename holds until both halves are queued.
2026-10-13 11:53:02 +13:00
..
src fix(libkernel): pair the inotify halves of a rename in a watched directory 2026-10-13 11:53:02 +13:00
Equeue.cpp feat(libkernel): implement file events 2026-10-12 22:37:08 +02:00
Equeue.hpp feat(libkernel): implement file events 2026-10-12 22:37:08 +02:00