[Python] threading, local() and uwsgi: how protected is local()? - RITENTO

Marco Giusti marco.giusti a posteo.de
Mer 13 Dic 2017 09:44:18 CET


On 13/12/17 09:12, Alessandro Dentella wrote:
...
> Avendo sollecitato Roberto De Ioris anche in privato, mi ha in effetti
> risposto:
> 
>     Ciao, di solito si usano i thread local per avere dati
>     NON-condivisi tra i thread. Se e' il tuo caso, allora puoi usarli
>     senza problemi a patto che abiliti il GIL in uWSGI con
>     --enable-threads.
> 
> Va da sè che se non abilito --enable-threads, problema non ne ho,
> visto che non uso threads... e --threads imploca --enable-threads.

Esatto. Questa era anche la mia sensazione.

>> In realta' e' l'altro risultato che mi lascia dei dubbi, quando
>> threading.local non e' usato.
> 
> Qui ti ho perso... quale sarebbe "l'altro risultato"?

Lancia i test che ho mandato, una volta con la variabile d'ambiente
thread_safe=1 e la seconda senza. Quando il test non usa
threading.local, il risultato mi lascia perplesso. Il test lancia 400
richieste, mi aspetto che il totale sia x <= 400 e invece e'
costantemente > 400.


Maggiori informazioni sulla lista Python