summaryrefslogtreecommitdiff
path: root/hgext/inotify/linux/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'hgext/inotify/linux/__init__.py')
-rw-r--r--hgext/inotify/linux/__init__.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/hgext/inotify/linux/__init__.py b/hgext/inotify/linux/__init__.py
new file mode 100644
index 0000000..8a1bafd
--- /dev/null
+++ b/hgext/inotify/linux/__init__.py
@@ -0,0 +1,44 @@
+# __init__.py - low-level interfaces to the Linux inotify subsystem
+
+# Copyright 2006 Bryan O'Sullivan <bos@serpentine.com>
+
+# This library is free software; you can redistribute it and/or modify
+# it under the terms of version 2.1 of the GNU Lesser General Public
+# License, or any later version.
+
+'''Low-level interface to the Linux inotify subsystem.
+
+The inotify subsystem provides an efficient mechanism for file status
+monitoring and change notification.
+
+This package provides the low-level inotify system call interface and
+associated constants and helper functions.
+
+For a higher-level interface that remains highly efficient, use the
+inotify.watcher package.'''
+
+__author__ = "Bryan O'Sullivan <bos@serpentine.com>"
+
+from _inotify import *
+
+procfs_path = '/proc/sys/fs/inotify'
+
+def _read_procfs_value(name):
+ def read_value():
+ try:
+ fp = open(procfs_path + '/' + name)
+ r = int(fp.read())
+ fp.close()
+ return r
+ except OSError:
+ return None
+
+ read_value.__doc__ = '''Return the value of the %s setting from /proc.
+
+ If inotify is not enabled on this system, return None.''' % name
+
+ return read_value
+
+max_queued_events = _read_procfs_value('max_queued_events')
+max_user_instances = _read_procfs_value('max_user_instances')
+max_user_watches = _read_procfs_value('max_user_watches')