Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 36 lines 1.2 kB view raw
1import sys 2import logging 3 4 5def setMaxfilesopened(limit): 6 try: 7 if sys.platform == "win32": 8 import ctypes 9 dll = None 10 last_err = None 11 for dll_name in ["msvcr100", "msvcr110", "msvcr120"]: 12 try: 13 dll = getattr(ctypes.cdll, dll_name) 14 break 15 except OSError as err: 16 last_err = err 17 18 if not dll: 19 raise last_err 20 21 maxstdio = dll._getmaxstdio() 22 if maxstdio < limit: 23 logging.debug("%s: Current maxstdio: %s, changing to %s..." % (dll, maxstdio, limit)) 24 dll._setmaxstdio(limit) 25 return True 26 else: 27 import resource 28 soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE) 29 if soft < limit: 30 logging.debug("Current RLIMIT_NOFILE: %s (max: %s), changing to %s..." % (soft, hard, limit)) 31 resource.setrlimit(resource.RLIMIT_NOFILE, (limit, hard)) 32 return True 33 34 except Exception as err: 35 logging.error("Failed to modify max files open limit: %s" % err) 36 return False