[python] sockety - problem s HTTP spojenim

Jan Kundrát jkt na gentoo.org
Středa Listopad 28 21:22:14 CET 2007


Filip Štědrosnký wrote:
> 1) myslel jsem, Ĺže se nejednĂĄ o threaded aplikaci ale asyncore/asynchat,
>    alespoň jsem to tak z kontextu pochopil

Aha, ja jsem tak nejak predpokladal, ze asyncore.loop() pobezi ve svem
threadu, pardon.

> 2) stringy jsou neměnitelné, takže to není append, ve skutečnosti se
>    spojí, vytvoří se nový string a ten se teprve přiřadí, to už atomická
>    operace je

No, mohl bych poprosit o referenci na nejaky zdroj, ktery tvrdi, ze od
zacatku provadeni vyrazu "buffer += foo" az po jeho dokonceni se
nedostane ke slovu jiny thread?

Problemem v dane situaci je prave moznost prepnuti do jineho threadu
mezi "spojenim stringu" a "prirazenim do promenne". Netvrdim, ze to
shodi interpret, ale ze v promenne buffer mohou byt necekana data.

Vzhledem k tomu, ze se celkem bezne [1] tvrdi, ze += 1 na int *neni*
atomicke, tak soudim, ze append na (immutable) stringy rovnez nebude.

> 3) vzhledem k pythonímu GIL je vše (mnohdy až příliš) thread-safe a pokud
>    nepoužíváte nějaké neobvyklé C extenze, nemusíte zamykat skoro nic

Silne nesouhlasim, viz znovu [1]. Dalsi vygoogleny odkaz je thread [2].


[1] http://effbot.org/zone/thread-synchronization.htm
[2] http://mail.python.org/pipermail/python-list/2000-April/030896.html

Hezky vecer,
-jkt

-- 
cd /local/pub && more beer > /dev/mouth

------------- další část ---------------
Netextová příloha byla odstraněna...
JmĂŠno: signature.asc
Typ: application/pgp-signature
Velikost: 252 bytes
Popis: OpenPGP digital signature
Url : http://www.py.cz/pipermail/python/attachments/20071128/dfa078a5/attachment.pgp 


Další informace o konferenci Python