comparison hgext/inotify/linux/__init__.py @ 6239:39cfcef4f463

Add inotify extension
author Bryan O'Sullivan <bos@serpentine.com>
date Wed, 12 Mar 2008 15:30:11 -0700
parents
children 553aa0cbeab6
comparison
equal deleted inserted replaced
6236:ad6b123de1c7 6239:39cfcef4f463
1 # __init__.py - low-level interfaces to the Linux inotify subsystem
2
3 # Copyright 2006 Bryan O'Sullivan <bos@serpentine.com>
4
5 # This library is free software; you can redistribute it and/or modify
6 # it under the terms of version 2.1 of the GNU Lesser General Public
7 # License, incorporated herein by reference.
8
9 '''Low-level interface to the Linux inotify subsystem.
10
11 The inotify subsystem provides an efficient mechanism for file status
12 monitoring and change notification.
13
14 This package provides the low-level inotify system call interface and
15 associated constants and helper functions.
16
17 For a higher-level interface that remains highly efficient, use the
18 inotify.watcher package.'''
19
20 __author__ = "Bryan O'Sullivan <bos@serpentine.com>"
21
22 from _inotify import *
23
24 procfs_path = '/proc/sys/fs/inotify'
25
26 def _read_procfs_value(name):
27 def read_value():
28 try:
29 return int(open(procfs_path + '/' + name).read())
30 except OSError, err:
31 return None
32
33 read_value.__doc__ = '''Return the value of the %s setting from /proc.
34
35 If inotify is not enabled on this system, return None.''' % name
36
37 return read_value
38
39 max_queued_events = _read_procfs_value('max_queued_events')
40 max_user_instances = _read_procfs_value('max_user_instances')
41 max_user_watches = _read_procfs_value('max_user_watches')