Portál AbcLinuxu, 10. května 2025 04:41

Dotaz: Signal SIGIO prerusi metodu sleep(ale nemel by)

12.2.2009 14:23 Rhadesan | skóre: 2
Signal SIGIO prerusi metodu sleep(ale nemel by)
Přečteno: 217×
Odpovědět | Admin
Příloha:

Ahoj, snazim se najit chybu ve svem programu, ale jelikoz se jedna o praci se signaly, s kterymi nemam zadne zkusenosti, tak jsem vytvoril chybu, s kterou nevim jak dal. Chyba je vypreparovana v prilozenem kodu.

Je zde inicializovana seriova linka s parametry komunikace: 9600 Baudu, bez parity, 8 datovych bitu, 1 stop bit, zadne flow control.

Pokud spustim tento program, tak bych cekal, ze se vypise hlaseni o startu, pak se 30 vterin pocka a pak se skonci, pripadne ze se obcas vypise "obsluha signalu". Takhle to ale funguje pouze dokud se na seriove lince neobjevi nejaka data. Chovani se potom lisi podle toho, zdali pouzivam boost::this_thread::sleep nebo jen sleep:
1) boost::this_thread::sleep prerusi cekaci smycku vzdy po prijeti 5teho znaku.
2) "obycejne" sleep prerusi tuto smycku okamzite po prijeti prvniho znaku.

Problem je, ze nevim proc se tomu tak deje, a hlavne ze nechci aby se tak delo.
Dekuji za radu!

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.2.2009 18:41 ---
Rozbalit Rozbalit vše Re: Signal SIGIO prerusi metodu sleep(ale nemel by)
Odpovědět | | Sbalit | Link | Blokovat | Admin

man 7 signal ...

The sleep(3) function is also never restarted if interrupted by a handler, but gives a success return: the number of seconds remaining to sleep.

Osobne ovsem preferuji select/poll, signalum se radsi vyhybam.

13.2.2009 09:09 Rhadesan | skóre: 2
Rozbalit Rozbalit vše Re: Signal SIGIO prerusi metodu sleep(ale nemel by)

Diky moc! Skoda ze tahle veta vypadla z ceskyho prekladu.

Neporadil bys mi nejakej tutorial k select/poll? Ze samotnyho manu moc moudry nejsem.

13.2.2009 09:50 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Signal SIGIO prerusi metodu sleep(ale nemel by)
nejakej tutorial k select/poll

Pokud by stačily podklady k přednášce, tak v Programování v Unixu je k tomu něco na stránkách 188-191.

I am always ready to learn although I do not always like to be taught. (W. Churchill)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.