sleep(10)

Le
Claude Schoen
--_000_C673E85BB1FBB54B9C392C27267C0F015C47FE32A5ESGFRSBS2K8es_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bonjour,

Je viens d'écrire 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ê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 ?


Claude Schoen


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

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-=
1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-micr=
osoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" =
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http:=
//www.w3.org/TR/REC-html40"><head><meta name=Generator content="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="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=FR link=blue vlink=
=purple><div class=WordSection1><p class=MsoNormal>Bonjour,<o:p></o:p=
></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Je vien=
s d&#8217;écrire 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êt. Sleep(n) non pl=
us ne constitue pas un arrêt.<o:p></o:p></p><p class=MsoNormal>Sleep n =
dans le shell est par contre normal (ouf).<o:p></o:p></p><p class=MsoNorm=
al><o:p>&nbsp;</o:p></p><p class=MsoNormal>Sauriez vous SVP ou est le pro=
blème&nbsp;?<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p c=
lass=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><b><span style=
='font-family:"Arial Narrow","sans-serif";color:#17365D'>Claude Schoen<o:=
p></o:p></span></b></p><p class=MsoNormal><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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yves Rutschle
Le #23310751
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/
Guilhem Bonnefille
Le #23310801
Le 26 avril 2011 12:43, Claude Schoen

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/
Publicité
Poster une réponse
Anonyme