Quellcode durchsuchen

Conditional `Timeout()` by OS (disable on Windows) (#7013)

* Conditional `Timeout()` by OS (disable on Windows)

* Update general.py
modifyDataloader
Glenn Jocher GitHub vor 2 Jahren
Ursprung
Commit
3f634d43c8
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden GPG-Schlüssel-ID: 4AEE18F83AFDEB23
1 geänderte Dateien mit 7 neuen und 5 gelöschten Zeilen
  1. +7
    -5
      utils/general.py

+ 7
- 5
utils/general.py Datei anzeigen

@@ -123,13 +123,15 @@ class Timeout(contextlib.ContextDecorator):
raise TimeoutError(self.timeout_message)

def __enter__(self):
signal.signal(signal.SIGALRM, self._timeout_handler) # Set handler for SIGALRM
signal.alarm(self.seconds) # start countdown for SIGALRM to be raised
if platform.system() != 'Windows': # not supported on Windows
signal.signal(signal.SIGALRM, self._timeout_handler) # Set handler for SIGALRM
signal.alarm(self.seconds) # start countdown for SIGALRM to be raised

def __exit__(self, exc_type, exc_val, exc_tb):
signal.alarm(0) # Cancel SIGALRM if it's scheduled
if self.suppress and exc_type is TimeoutError: # Suppress TimeoutError
return True
if platform.system() != 'Windows':
signal.alarm(0) # Cancel SIGALRM if it's scheduled
if self.suppress and exc_type is TimeoutError: # Suppress TimeoutError
return True


class WorkingDirectory(contextlib.ContextDecorator):

Laden…
Abbrechen
Speichern