OVH Cloud OVH Cloud

Des streambufs et des pointeurs *pptr()

11 réponses
Avatar
Luc Hermitte
Bonjour,

Dans le cadre de la r=E9alisation d'un ostream de log qui sera utilis=E9
dans un contexte multithread, je me suis d=E9fini un streambuf qui
m=E9morise dans des vecteurs (dans des TSS/TLS) ce qui circule dans
chaque thread.

Jusque l=E0, tout va bien. Les articles de James m'ayant bien mis sur la
voie.

Et puis par curiosit=E9, je suis all=E9 voir ce qui se faisait ailleurs.
Sur codesearch de google, je suis tomb=E9 sur un code r=E9pondant =E0 la
m=EAme question. Dans les diff=E9rences notables, il y en a une qui m'a
intrigu=E9e : la mise =E0 jour des pointeurs de la /put area/ avec setp(),
pbump(), etc.

Du coup, je me suis pos=E9 la question "mais est-ce bien n=E9cessaire" ?
Si je ne m'abuse, ces pointeurs servent =E0 tout ce qui est seekp/tellp.
Ce qui fait que dans mon contexte de logs (qui en plus se conclut par
un appel =E0 une fonction variadique d'ACE), je n'en vois pas trop
l'int=E9r=EAt. D'autant que je trouverait bizarre d'obtenir des valeurs
diff=E9rentes suivant le thread qui utilise ces fonctions.

Suis-je pass=E9 =E0 c=F4t=E9 de quelque chose ?

--
Luc Hermitte

1 réponse

1 2
Avatar
Mickaël Wolff
Effectivement, ca n'a pas vraiment de rapport avec le sujet ;)
Ca me rappelle le jour ou j'ai cherché 'std' sur Google, le
résultat est assez surprenant pour un non anglophone...


Merci de m'avoir fait travailler mes abdos !

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

1 2