GFileMonitor failed while using G_FILE_MONITOR_WATCH_HARD_LINKS flag under MSYS2 on windows
OS: Windows 7 6.1.7601(SP1)
MSYS2: mintty 3.4.5
GLib: 2.66.7-1
Valac: 0.50.3
Sample code with Vala
// monitor file change ---> Receive nothing
var monitor_flags = FileMonitorFlags.WATCH_MOVES | FileMonitorFlags.WATCH_MOUNTS | FileMonitorFlags.WATCH_HARD_LINKS;
var source_file_monitor = File.new_for_path(m_source_file_path).monitor_file(monitor_flags, null);
source_file_monitor.set_rate_limit(1000);
source_file_monitor.changed.connect(file_changed_handler);
// monitor file change ---> Receive all events as normal
var monitor_flags = FileMonitorFlags.WATCH_MOVES | FileMonitorFlags.WATCH_MOUNTS;
var source_file_monitor = File.new_for_path(m_source_file_path).monitor_file(monitor_flags, null);
source_file_monitor.set_rate_limit(1000);
source_file_monitor.changed.connect(file_changed_handler);
private void file_changed_handler(File file, File? other_file, FileMonitorEvent event_type)
{
GLib.warning("file monitor event: %s: %s, %s",
EnumClass.to_string(typeof(FileMonitorEvent), event_type),
file.get_basename(), (null != other_file ? other_file.get_basename() : "NULL"));
}
Edited by TAO ZUHONG