Vlakna a soubory

Dalibor Straka dast na panelnet.cz
Čtvrtek Květen 17 21:33:34 CEST 2007


On Thu, May 17, 2007 at 09:25:49PM +0200, Pavel Kankovsky wrote:
> lseek() je dokonce reentrantní. Ovšem pokud ho chcete používat z různých
> vláken na jeden fd, pak si stejně koledujete o průšvih, protože se může
> např. stát, že místo dvou sekvencí (lseek(), read()) se stane (lseek(),
> lseek(), read(), read()) s úplně jinými výsledky.
> 
Diky, proste to pozamykam.

> Buď musíte v různých vláknech používat různé fd, nebo to musíte
> serializovat, nebo musíte používat pread() a pwrite().
> 
> > Samozrejme bych mohl pouzit mutexy, ale proc blokovat zbytecne vlakno,
> > to bych byl hloupy a program pomaly.
> 
> Znáte ten vtip, jak 486 a Pentium soutěží v počítání?
> 
To sice ano, ale pomalu jeste neznamena spravne. Kdyz uz blbe, tak
alespon rychle.

Je to trosku blby pripad: Mam dynamicky seznam souboru do kterych
se zapisuje a cte se z nich. Musel bych si udelat ve strukture
polozku zda-li je soubor zamceny. Na druhou stranu by to mohlo zrychlit
i/o operace.

-- Dalibor Straka



Další informace o konferenci Linux