you can't get resource.error if you can't import resource

This commit is contained in:
Benjamin Peterson 2011-12-10 12:31:42 -05:00
parent 13859bfedc
commit 964561bb7c
1 changed files with 17 additions and 11 deletions

View File

@ -18,6 +18,12 @@ try:
except ImportError:
gc = None
try:
import resource
except ImportError:
resource = None
mswindows = (sys.platform == "win32")
#
@ -732,12 +738,12 @@ class _SuppressCoreFiles(object):
def __enter__(self):
"""Try to save previous ulimit, then set it to (0, 0)."""
try:
import resource
self.old_limit = resource.getrlimit(resource.RLIMIT_CORE)
resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
except (ImportError, ValueError, resource.error):
pass
if resource is not None:
try:
self.old_limit = resource.getrlimit(resource.RLIMIT_CORE)
resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
except (ValueError, resource.error):
pass
if sys.platform == 'darwin':
# Check if the 'Crash Reporter' on OSX was configured
@ -758,11 +764,11 @@ class _SuppressCoreFiles(object):
"""Return core file behavior to default."""
if self.old_limit is None:
return
try:
import resource
resource.setrlimit(resource.RLIMIT_CORE, self.old_limit)
except (ImportError, ValueError, resource.error):
pass
if resource is not None:
try:
resource.setrlimit(resource.RLIMIT_CORE, self.old_limit)
except (ValueError, resource.error):
pass
@unittest.skipIf(mswindows, "POSIX specific tests")