Wie kann ich sicherstellen, ein Python-Programm kann über Strg-C oder einen ähnlichen Mechanismus unterbrochen werden, wenn es in Code in einer DLL festgefahren ist?Interrupt Python-Programm in einer DLL Deadlocked
Antwort
Nicht sicher, ob dies genau das ist, was Sie fragen, aber es gibt Probleme, wenn versucht wird, (über Ctrl-C) einen Multi-Thread-Python-Prozess zu unterbrechen. Hier ist ein Video von einem Vortrag über den Python Globaler Interpreter Lock, der auch diese Frage diskutiert:
Sie vielleicht einen Blick auf this mailing list für ein paar anderen Vorschläge machen wollen, aber es gibt keine schlüssige Antworten.
Ich habe das Problem mehrmals, und ich kann zumindest bestätigen, dass dies passiert, wenn FFI in Haskell verwenden. Ich hätte schwören können, dass ich in Haskells FFI-Dokumentation etwas gesehen habe, in dem erwähnt wurde, dass DLLs nicht von einem Ctrl-C-Signal zurückkehren würden, aber ich habe kein Glück, dieses Dokument zu finden.
Sie können versuchen using ctrl-break, aber das funktioniert nicht aus einer DLL in Haskell ausbrechen und ich habe Zweifel, es wird auch in Python funktionieren. Update: Ctrl-Break funktioniert für mich in Python, wenn Ctrl-c nicht während eines Aufrufs einer DLL-Funktion in einer Endlosschleife funktioniert.
- 1. Android: Interrupt-Thread in einer Methode enthalten
- 2. Was passiert in einer Interrupt-Service-Routine?
- 3. Multithreading in einer DLL
- 4. Interrupt in Arduino
- 5. Interrupt-Busy-Schleife in Node.js
- 6. Software-Interrupt
- 7. OpenSSL in einer VisualC++ DLL
- 8. Versionsnummer einer DLL in .NET
- 9. Den Namen einer DLL aus der DLL
- 10. Task Parallelbibliothek Threadabbruch/Interrupt
- 11. Korrekten Interrupt-Code in Assembly
- 12. ARM Interrupt-Behandlung in QEMU
- 13. Dynamisch Laden einer DLL innerhalb einer anderen DLL
- 14. Was bedeutet "Interrupt-Hooking"?
- 15. Konvertieren einer .NET-DLL in eine .Net-Core-DLL
- 16. Anfügen einer Methode an eine Interrupt-Routine in C++ 11
- 17. Ändern einer DLL Manifest
- 18. Interrupt-Handling (Linux/General)
- 19. C++ - Variable geändert während Interrupt zurückgesetzt nach Interrupt
- 20. Hard-Interrupt und Softirq
- 21. Interrupt Kind aus Ruby
- 22. Ist dieser Interrupt() notwendig?
- 23. Interrupt-Safe-Puffer
- 24. Wie KVM Interrupt handhaben
- 25. i2c Interrupt-Handler stm32
- 26. Interrupt boost :: asio synchronen Lese?
- 27. jQuery - Interrupt-Animation?
- 28. 8051 externer Interrupt
- 29. AVR-Programmierung, Interrupt-Handling
- 30. Signal in C Handhabung - Unterbrechung in Interrupt