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