[Python] Io lo so che coem sistemista faccio schifo

Roberto De Ioris roberto a unbit.it
Gio 19 Mar 2015 18:10:35 CET


> 2015-03-19 17:28 GMT+01:00 Roberto De Ioris <roberto a unbit.it>:
>
>> [...]
>
>> > Non credo sia possibile supportare fork.
>> > fork da problemi ovunque, anche su Python...
>> >
>> >
>> >
>>
>> C'e' poco da fare, per supportare fork() devi prenderla in
>> considerazione
>> dall'inizio in fase di progettazione (e ti costringe a scelte solo in
>> funzione di lei)
>>
>>
> Ossia buttare fuori i threads? :)
>
> Perchè il problema di fondo è proprio quello che fork e thread non vanno
> d'accordo.
>
>
>


Questa e' la loro risposta ufficiale e vabbe'.

Ma ti assicuro che di approcci ce ne erano eccome.

Ad esempio usare pthread_atfork per rigenerare tutti i thread necessari al
runtime (lo scavenger e amici). Oppure semplicemente fare un wrapper per
fork() che quando la chiami rigenera tutto il runtime (quello che ad
esempio fa' uwsgi con gccgo, che pero' e' tutta un'altra bestia)

https://github.com/unbit/uwsgi/blob/master/plugins/gccgo/gccgo_plugin.c#L212

Di sicuro roba complicata e che rendeva una parte gia' complessa del
codice ancora piu' complessa, ma secondo me ne valeva la pena.

Vabbe' oh, alla fine e' una fissa mia, se ai gopher sta bene cosi' mi
adatto :)


-- 
Roberto De Ioris
http://unbit.com


Maggiori informazioni sulla lista Python