Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sleep(10)

2 réponses
Avatar
Claude Schoen
--_000_C673E85BB1FBB54B9C392C27267C0F015C47FE32A5ESGFRSBS2K8es_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bonjour,

Je viens d'=E9crire un petit programme C++ avec deux threads POSIX, et un p=
ause() en toute fin. Pause() qui se comporte normalement sous OpenSuse, mai=
s pas sous DEBIAN : il n'y a pas d'arr=EAt. Sleep(n) non plus ne constitue =
pas un arr=EAt.
Sleep n dans le shell est par contre normal (ouf).

Sauriez vous SVP ou est le probl=E8me ?


Claude Schoen


--_000_C673E85BB1FBB54B9C392C27267C0F015C47FE32A5ESGFRSBS2K8es_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Diso-8859-=
1">
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta name=3DGenerator content=3D"Microso=
ft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Arial Narrow";
panose-1:2 11 6 6 2 2 2 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DFR link=3Dblue vlink=
=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Bonjour,<o:p></o:p=
></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>Je vien=
s d&#8217;=E9crire un petit programme C++ avec deux threads POSIX, et un pa=
use() en toute fin. Pause() qui se comporte normalement sous OpenSuse, mais=
pas sous DEBIAN&nbsp;: il n&#8217;y a pas d&#8217;arr=EAt. Sleep(n) non pl=
us ne constitue pas un arr=EAt.<o:p></o:p></p><p class=3DMsoNormal>Sleep n =
dans le shell est par contre normal (ouf).<o:p></o:p></p><p class=3DMsoNorm=
al><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>Sauriez vous SVP ou est le pro=
bl=E8me&nbsp;?<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p c=
lass=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><b><span style=
=3D'font-family:"Arial Narrow","sans-serif";color:#17365D'>Claude Schoen<o:=
p></o:p></span></b></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></bo=
dy></html>=

--_000_C673E85BB1FBB54B9C392C27267C0F015C47FE32A5ESGFRSBS2K8es_--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/C673E85BB1FBB54B9C392C27267C0F015C47FE32A5@ESG-FR-SBS2K8.esg-fr.local

2 réponses

Avatar
Yves Rutschle
On Tue, Apr 26, 2011 at 12:43:17PM +0200, Claude Schoen
wrote:
Je viens d'écrire un petit programme C++ avec deux threads
POSIX, et un pause() en toute fin. Pause() qui se comporte
normalement sous OpenSuse, mais pas sous DEBIAN : il n'y a
pas d'arrêt. Sleep(n) non plus ne constitue pas un arrêt.



Essaie de faire un programme minimum présentant le problème
dont tu parles et poste-le ici.

Sauriez vous SVP ou est le problème ?



Au hasard, le processus a déjà reçu un signal et quand tu
fais pause() il consomme simplement ce signal. Incidement,
le fait que tu parles de thread me fait me demander si tu ne
veux pas utiliser wait(2) plutôt.

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Guilhem Bonnefille
Le 26 avril 2011 12:43, Claude Schoen a écr it :

Je viens d’écrire un petit programme C++ avec deux threads POSIX, et un
pause() en toute fin. Pause() qui se comporte normalement sous OpenSuse,
mais pas sous DEBIAN : il n’y a pas d’arrêt. Sleep(n) non plus ne constitue
pas un arrêt.

Sleep n dans le shell est par contre normal (ouf).



Sauriez vous SVP ou est le problème ?




sleep utilise un signal : il parait normal que son comportement
corresponde à ce que tu constate avec pause (qui gère aussi les
signaux).

De mémoire, les thread et les signaux ne font pas bon ménage, dans la
mesure où leur interactions ne sont pas bien spécifiées (quel thread
doit recevoir quel signal...). Pour que ça fonctionne, il faut faire
beaucoup de code, dont une bonne partie spécifique à la plateforme,
pour masquer les signaux dans certains thread et pas dans d'autres.

En général, il vaut mieux revoir tes besoins (on peut s'endormir avec
usleep par exemple) ou partir sur une bibliothèque pour gérer tout ça
à ta place (je pense au moins à ACE ou libevent, mais il doit en
exister des dizaines).

Bon courage.
--
Guilhem BONNEFILLE
-=- JID: MSN:
-=- mailto:
-=- http://nathguil.free.fr/

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/