Path: csiph.com!news.mixmin.net!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail From: Mateusz Viste 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: NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 Xref: csiph.com pl.comp.os.linux.programowanie:2231 2020-09-09 o 09:16 +0200, heby napisa=C5=82: > Potrzebuj=C4=99 w celach testowych zasypa=C4=87 aplikacj=C4=99 errorami E= INTR.=20 > Aplikacja robi bardzo duzo operacji read/write i w ten spos=C3=B3b > chcia=C5=82bym zwi=C4=99kszy=C5=9Bc prawdopodobie=C5=84stwo znalezienia m= iejsca bez > obs=C5=82ugi EINTR. >=20 > Mam pid mojego procesu. W jaki spos=C3=B3b mog=C4=99 spowodowa=C4=87 =C5= =BCe w procesie > tym znacz=C4=85co zwi=C4=99kszy si=C4=99 ilo=C5=9Bc EINTR w przypadkowych= miejscach? >=20 > Rozumiem =C5=BCe mam wysy=C5=82a=C4=87 sygna=C5=82y do mojego procesu. Mo= =C5=BCna to zrobic za=20 > pomoc=C4=85 kill? I jaki sygna=C5=82 mam wysy=C5=82a=C4=87? Dowolny? np S= IGCONT albo > SIGALRM b=C4=99dzie ok? To by=C5=82oby pewnie dobre, gdyby=C5=9B chcia=C5=82 testowa=C4=87 funkcje = read(), write(), send(), itp na okoliczno=C5=9B=C4=87 poprawnej obs=C5=82ugi sygna=C5=82=C3= =B3w. Tobie jednak zale=C5=BCy raczej na sprawdzeniu swojego w=C5=82asnego kodu, kt=C3=B3ry je= st klientem tych funkcji. Ja zrobi=C5=82bym to tak: ssize_t monkey_write(int fd, const void *buf, size_t cnt) { static int crazy_monkey; crazy_monkey ^=3D 1; if (crazy_monkey =3D=3D 0) { errno =3D EINTR; return(-1); } return(write(fd, buf, cnt)); } #define write monkey_write (tutaj dalszy kod programu) Mateusz