Embedded use vs. signal handlers

Offen
#93,411 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
c, python

Rechercherichtung

Es ist keine Quelldatei oder kein Test angegeben. Beginne damit, das für einen eingebetteten Python-Interpreter beschriebene Verhalten von signal.signal und signal.getsignal zu untersuchen, einschließlich der von C installierten Handler; done sollte das Wiederherstellen dieses vorherigen Handlers ermöglichen und ihn, sofern möglich, als aufrufbares Objekt bereitstellen, das Python wrappen kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

3.13 stdlib type-feature

Enhancement

C signal handlers should be restore-able. Ideally you also want to call them from Python.

signal.signal(signal.SIGINT, signal.getsignal(signal.SIGINT))

This (ostensibly no-op) code raises TypeError when you use it in an embedded Python interpreter and a signal handler has been installed by the C (or whatever) side.

It shouldn't. My Python code wants to be able to restore the signal handler to its previous state when it's done.

Ideally my code should also be able to wrap that C handler, i.e. the result of getsignal() should be a callable from Python.

Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
558

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.