[Python-de] Problem mit fork() in der C-API

Christopher Arndt chris at chrisarndt.de
Mi Feb 1 16:27:42 CET 2012


On 31.01.2012 14:33, Christian Heimes wrote:
> Am 31.01.2012 14:24, schrieb Olе Streicher:
>> Hallo Gruppe,
>>
>> ich habe einen C-Code an Python mit der C-API angebunden, der u.a. einen
>> fork() mit einem exit() macht.
> 
> Wenn du selbst einen Fork machst, musst du auch die passenden Hooks
> verwenden.

Interessantes Phänomen. Ich vermute mal, das Problem hat eher mit
vererbten Filepointern im Zusammenspiel mit Pythons Fileobjekten zu tun.
In der fork Manpage stehen ja ein paar Dinge, die Child-Prozesse nicht
erben. Ich würde mal in den Python-Sourcen schauen, ob das Fileobjekt
evtl. davon betroffen ist.

> Warum ist das so und wie kann ich das verhindern?

Warum das so ist, weiß ich nicht, aber ein a.flush() direkt nach dem
a.write(..) stellt das erwartete Verhalten wieder her.


Chris


Mehr Informationen über die Mailingliste python-de