hgext/inotify/linux/__init__.py
branchstable
changeset 21160 564f55b25122
parent 21028 a0f437e2f5a9
parent 21159 024f38f6d5f6
child 21161 ef59019f4771
equal deleted inserted replaced
21028:a0f437e2f5a9 21160:564f55b25122
     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, or any later version.
       
     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             fp = open(procfs_path + '/' + name)
       
    30             r = int(fp.read())
       
    31             fp.close()
       
    32             return r
       
    33         except OSError:
       
    34             return None
       
    35 
       
    36     read_value.__doc__ = '''Return the value of the %s setting from /proc.
       
    37 
       
    38     If inotify is not enabled on this system, return None.''' % name
       
    39 
       
    40     return read_value
       
    41 
       
    42 max_queued_events = _read_procfs_value('max_queued_events')
       
    43 max_user_instances = _read_procfs_value('max_user_instances')
       
    44 max_user_watches = _read_procfs_value('max_user_watches')