dlhy timeout

Petr Snajdr snajdr na firma.seznam.cz
Středa Červen 16 12:19:33 CEST 1999


On Tue, 15 Jun 1999, Pavel Kankovsky wrote:

> > Ale pozriem aj na ten select(2).
> 
> non-blocking connect je docela vesela zalezitost
> priklad pouziti lze nalezt v novejsich verzich Tiny Fugue
> ja bych se tomu rozhodne vybybal, sec bych mohl :)

V nekterych pripadech se ale hodi. Prikladem budiz
boa - WWW server, ktery bezi jen jako 1 proces bez
forkovani a bez threadu a pritom obsluhuje urcite
vice nez jednoho klineta :). No ale to uz je neco trochu jineho.

Jinak zase tak hrozne to neni :-)

Jelikoz jsem nejak nevedel o sigaction :), tak
jsem si ty timeouty udelal jinak. 
Potreboval jsem to v jazyce Python a v nekterych
jeho knihovnach - HTTP, FTP,.... Prepisovat je uplne znova
se mi je nechtelo a tak jsem si napsal knihovnu, ktera emulovala
cast knihovny socket, kterou ostatni moduly pouzivaji. Co neemulovala
to "presmerovavala" na puvodni socket. Ta cast byla udelana 
jako neblokujici s tim, ze na venek pro programy ji
vyuzivajici to bylo transparentni (jinak by nefungovaly).
No a postup pouziti byl:

- natahnu knihovnu HTTP (napr)
- natahnu mou_knihovnu (my_socket)
- donutim HTTP knihovnu, aby si myslela ze 
  knihovna socket je my_socket :) 

Takze nakonec se to tvari porad stejne :). Prijde mi, ze
i tak mam o neco lepsi kontrolu nad tim co s tim socketem stalo
nebo kde se to az prerusilo. 

BTW: Taky nevim zdali mi nektera
z tech knihoven nastaveny alarm neprepise.

--

S pozdravem
   Petr Snajdr

Seznam Ceskeho Internetu: http://www.seznam.cz/
Magazin pro kazdeho: http://www.novinky.cz/
Seznam Dnes: http://dnes.seznam.cz/
Navody, recenze, technika: 
http://www.novinky.cz/Index/TechDesk/ 




Další informace o konferenci Linux