Přerušení write při startu vlákna

Ladislav Vaiz spam na nagano.cz
Středa Březen 14 17:15:05 CET 2007



Pavel Kankovsky wrote:
> Velmi pravděpodobně přijde nějaký signál, který syscall přeruší.
>   
To jsem také předpokládal, ale čekal jsem, že v tom případě vrátí 
syscall chybu. Možná se takto chová proto, aby bylo možné pokračovat a 
zapsat zbytek.
> Zkuste pod gdb zadat "handle all print" a uvidíte, jestli něco uvidíte. :)
>   
Vidím toho spoustu, ale nevím, co bych měl hledat. Většina řádkek má 3x 
Yes.
> (Pod strace není žádný signál vidět?)
>   
To bohužel neumím. Proces laděný gdb neumím trasovat. Jde to nějak nebo 
jste přehlédl to gdb?


Ing. Pavel PaJaSoft Janoušek wrote:
> 	Co wrací ten write za chybu? Není to EAGAIN? Pokud jo, hledal bych
> přerušení via signály...
>
>   
Nevrací chybu, vrací kladné číslo.



Jiri Kosina wrote:
> Toto chovani je v souladu s POSIXem, a Vase aplikace by na nej mela byt 
> pripravena. Viz [1], predevsim pak 
>
> "If write() is interrupted by a signal after it successfully writes some 
> data, it shall return the number of bytes written."
>
> [1] http://www.opengroup.org/onlinepubs/009695399/functions/write.html
>
>   
Díky za odkaz, toto v manuálové stránce nemám. Zkoušel jsem strace bez 
gdb a žádný signál během vytváření threadu nevidím. Asi to tedy bude 
nějaká specialita gdb.


Díky za odpovědi
Láďa




Další informace o konferenci Linux