b43be6a308
Watcher de archivos no bloqueante con backend nativo por plataforma: - Linux: inotify_init1(IN_NONBLOCK | IN_CLOEXEC), inotify_add_watch con mascara MODIFY|CREATE|DELETE|CLOSE_WRITE|MOVED_*. Drain en cada poll(). - Windows: ReadDirectoryChangesW overlapped + GetOverlappedResult no bloqueante. Para vigilar un archivo, registra el directorio padre y filtra por nombre exacto en el poll(). - Otros: stub — poll() devuelve vacio y last_error() reporta no soportado. API en namespace fn:: con tipos opacos (FileWatcher PIMPL). Errores via last_error() en vez de excepciones. Documentadas las limitaciones (limite de inotify watches en Linux, granularidad directorio-level en Windows, no recursividad). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>