Article View: pl.comp.os.linux.programowanie
Article #72973Re: EINTR - sztuczne generowanie
From: Mateusz Viste
Date: Wed, 09 Sep 2020 08:18
Date: Wed, 09 Sep 2020 08:18
35 lines
1950 bytes
1950 bytes
2020-09-09 o 09:16 +0200, heby napisał:
> Potrzebuję w celach testowych zasypać aplikację errorami EINTR.
> Aplikacja robi bardzo duzo operacji read/write i w ten sposób
> chciałbym zwiększyśc prawdopodobieństwo znalezienia miejsca bez
> obsługi EINTR.
>
> Mam pid mojego procesu. W jaki sposób mogę spowodować że w procesie
> tym znacząco zwiększy się ilośc EINTR w przypadkowych miejscach?
>
> Rozumiem że mam wysyłać sygnały do mojego procesu. Można to zrobic za
> pomocą kill? I jaki sygnał mam wysyłać? Dowolny? np SIGCONT albo
> SIGALRM będzie ok?
To byłoby pewnie dobre, gdybyś chciał testować funkcje read(), write(),
send(), itp na okoliczność poprawnej obsługi sygnałów. Tobie jednak
zależy raczej na sprawdzeniu swojego własnego kodu, który jest klientem
tych funkcji. Ja zrobiłbym to tak:
ssize_t monkey_write(int fd, const void *buf, size_t cnt) {
static int crazy_monkey;
crazy_monkey ^= 1;
if (crazy_monkey == 0) {
errno = EINTR;
return(-1);
}
return(write(fd, buf, cnt));
}
#define write monkey_write
(tutaj dalszy kod programu)
Mateusz
Technical Details
Message-ID:
<20200909101830.2170cf7b@mateusz>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mailReferences:
<rj9vh2$6it$1@dont-email.me>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail From: Mateusz Viste <mateusz@xyz.invalid> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: EINTR - sztuczne generowanie Date: Wed, 9 Sep 2020 10:18:30 +0200 Organization: . . . Lines: 45 Message-ID: <20200909101830.2170cf7b@mateusz> References: <rj9vh2$6it$1@dont-email.me> NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org X-Newsreader: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-suse-linux-gnu) X-Notice: Filtered by postfilter v. 0.9.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit