30

squalyl
: (cross) pollux > si tu utilisais ton cerveau au lieu de ton parser, tu interprèterais plus facilement les questions. le bon sens te permettrait de choisir. ma question était peut être mal posée mais elle n'a rien d'extraterrestre.

Ben écoute, jusqu'à preuve du contraire, seuls les extraterrestres ont su décrypter ton message, donc ton attaque personnelle est complètement à côté de la plaque... (sans même parler du respect minimum que tu pourrais avoir pour les gens qui essayent de répondre de bonne foi à ta question neutral)

(PS : "to parse" est un anglicisme, mais ça n'a rien à voir avec l'informatique, en tout cas à l'origine :
parse
v. parsed, pars·ing, pars·es
v. tr.
[ul] 1. To break (a sentence) down into its component parts of speech with an explanation of the form, function, and syntactical relationship of each part.
2. To describe (a word) by stating its part of speech, form, and syntactical relationships in a sentence.
3.
[ul] 1. To examine closely or subject to detailed analysis, especially by breaking up into components: “What are we missing by parsing the behavior of chimpanzees into the conventional categories recognized largely from our own behavior?” (Stephen Jay Gould).
2. To make sense of; comprehend: I simply couldn't parse what you just said.[/ul] 4. Computer Science. To analyze or separate (input, for example) into more easily processed components.[/ul]
)
t'avais pas parsé que je développe une appli?

Non, puisque tu ne l'avais pas dit, mais je m'en doutais qd même ^^
et qu'est ce que je ou tu peux en avoir a foutre de connaitre les "threads dans lequel sont effectués des opérations de windows"?

Tu pouvais parfaitement en avoir qqch à foutre, ton appli pouvait avoir besoin de savoir ça parce qu'elle est proche du système, ou bien peut-être que certains indicateurs de performances ne comptent que des threads user et pas des threads noyaux et que tu voulais savoir si ces threads faussaient la mesure de performance de ton application en introduisant des coûts cachés, ou bien peut-être que ça pouvait te poser des pbs pour le débuggage si lesdits threads étaient en espace kernel (si ton débugger ne te permet pas d'aller voir le code noyau), ou bien peut-être que tu étais tout simplement curieux ?
quand on s'intéresse un minimum à développer une appli qui gère des threads, le premier truc à savoir c'est que tu partages l'espace mémoire donc le thread est forcément dans l'userspace gol me dis pas que c'est compliqué.

Ben justement, c'est bien pour ça que je me disais que la question ne portait pas sur les threads créés par toi, mais plutôt sur les threads déjà présents sur le système par exemple... (ou créés indirectement par le système)
t'es la définition de l'obtus.

Alors là tu dépasses les bornes. J'ai fait abstraction de ton premier post insultant, en me disant que tu avais p-ê cru que j'étais de mauvaise foi. J'ai expliqué *pourquoi* j'étais de bonne foi, et je me suis donné la peine de t'expliquer comment j'avais compris ta question. Mais si même après ça tu te mets à m'insulter, tu es complètement inexcusable... Bonne chance dans la vie, le jour où tu te ramasseras des baffes parce que tu t'es foutu de la gueule du monde tu t'étonneras pas neutral

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

31

Bah peut-être qu'en squalylien « obtus » signifie « non télépathe », c'est pas spécialement plus insultant que de dire « moldu » pour « non magicien » après tout ^^
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

32

J'ai beaucoup aimé la clôture du sujet d'à côté, avant d'insulter les gens qui t'aident, Squalyl, vérifie plutôt que c'est pas toi le "monsieur je sais tout qui se plante" roll
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

33

plus géneralement, zen squalyl... pour quelqun qui s'est cassé tu fais beaucoup de bruit je trouve :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

34

35

t1 t'as deja du mal avec les !close, ptet que le multithreading c'est un peu tot pour toi tongue

36

avatar
I'm on a boat motherfucker, don't you ever forget

37

(inutile ton post Nhervyra)
Ceci dit je ne vois pas le rapport avec le lien que tu (Squalyl) viens de donner.
Mais bon tant pis pour toi après...

edit: cross
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

38

Est ce que vous pourriez me dire si il existe une différence notable entre l'utilisation d'une section critique sous windows, et d'un mutex sous linux avec la librairie pthread?

d'après ce que j'ai compris mutex vient de "mutual exclusion" donc ce serait comme une section critique non?

j'ai lu msdn: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/critical_section_objects.asp

mais bof on dirait que c'est pareil, sauf que je comprends pas trop ça:
Unlike a mutex object, there is no way to tell whether a critical section has been abandoned.

dans une utilisation pratique, ça change quoi? des détails ou des trucs fondamentaux? je précise que j'utilise un seul processus dans mon application.

j'ai essayé d'être précis, si vous comprenez pas dites moi avec précision ce que vous avez pas compris dans ma question ^^

edit: en pratique, j'ai écrit ça:
#define pthread_mutex_t CRITICALSECTION

int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
{
	InitializeCriticalSection(mutex);
}

int pthread_mutex_destroy(pthread_mutex_t *mutex)
{
	DeleteCriticalSection(mutex);
}

int pthread_mutex_lock(pthread_mutex_t *mutex)
{
	EnterCriticalSection(mutex);
}

int pthread_mutex_unlock(pthread_mutex_t *mutex)
{
	LeaveCriticalSection(mutex);
}


ça vous parait correct?

edit: ça suffit de faire des macros en fait cheeky

39

Manifestement l'implémentation win32 de la section critique diffère de celle des mutex par l'utilisation (ou non) de timeouts.
Ceci dit les mutex et sémaphores existent aussi sous win32.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_mutex_objects.asp
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

40

en effet, mais ça m'a l'air plus compliqué qu'une section critique, si il faut mettre un timeout et gérer les codes de retour!

sans avoir d'avantage évident autre que ceci, je vais garder mes sections critiques ^^

41

C'est vrai, TryEnterCriticalSection() ne supporte pas de timeout.
Pour le coup du "Abandoned", c'est ce qui arrive quand un thread se termine avant d'avoir rendu un mutex : Le mutex devient "abandoned" au lieu de disponible.
If a thread terminates without releasing its ownership of a mutex object, the mutex object is considered to be abandoned. A waiting thread can acquire ownership of an abandoned mutex object, but the wait function will return WAIT_ABANDONED to indicate that the mutex object is abandoned. An abandoned mutex object indicates that an error has occurred and that any shared resource being protected by the mutex object is in an undefined state


Pour les sections critiques, rien de tout cela. Si le thread se termine proprement, la section critique est relachée. Si le thread est tué avec TerminateThread(), il emporte la section critique dans sa tombe.

À noter aussi que les mutex de Windows peuvent être utilisés pour la communication inter-processus. Les mutex de Linux sont locaux à un process, comme les sections critiques.
PS: Les mutexes sont probablement plus lents, également.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

42

j'avoue ne pas comprendre l'intéret de TRYentercriticalsection...

ah, si, ça te rend le controle au lieu de bloquer, c'est ça?

PS: oui MSDN dit que les CS sont plus rapides.

Mais en fait, comme le montre mon code, je veux juste synchroniser les accès à une variable globale, et l'opération dans la section critique risque pas de timeouter grin (à moins d'une IRQ balèze qui passe par là juste au bon momentgrin)

donc je garde mon truc simple.

Bon, maintenant je me demandais l'équivalent posix, c'est quoi? je dois faire avec des mutexes cette fois?

43

squalyl :
ah, si, ça te rend le controle au lieu de bloquer, c'est ça?


Ouep, disons que ça te dit directement si tu peux la prendre ou pas.

Pour posix je sais pas, probablement des mutex oui, ou alors des sémaphores (puisque les mutex sont un cas particulier de sémaphores, si on prend le sens large).
Lis la norme grin (mais vu qu'unix et linux sont censés être posix... fin bon j'aurais tendance à penser que prendre des mutex pour faire des mutex serait pas mal, maintenant je ne sais pas les pouillèmes de différences dans le comportement de chaque implémentation...)

edit: d'ailleurs le "p" de "pthread" serait pas pour Posix ? #illumination#
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

44

45

je crois bien que sous Posix, l'équivalent le plus proche est le mutex anonyme, qui si je me souviens bien, est lui aussi local au processus (pthread_mutex_init).
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

46

je me permets de vous rappeler que

topics/84881-threads-win32/2#37

je demandais confirmation à la base...

47

squalyl :
Est ce que vous pourriez me dire si il existe une différence notable entre l'utilisation d'une section critique sous windows, et d'un mutex sous linux avec la librairie pthread?

d'après ce que j'ai compris mutex vient de "mutual exclusion" donc ce serait comme une section critique non?

j'ai lu msdn: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/critical_section_objects.asp

mais bof on dirait que c'est pareil, sauf que je comprends pas trop ça:
Unlike a mutex object, there is no way to tell whether a critical section has been abandoned.

dans une utilisation pratique, ça change quoi? des détails ou des trucs fondamentaux? je précise que j'utilise un seul processus dans mon application.

j'ai essayé d'être précis, si vous comprenez pas dites moi avec précision ce que vous avez pas compris dans ma question ^^

edit: en pratique, j'ai écrit ça:
#define pthread_mutex_t CRITICALSECTION

int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
{
	InitializeCriticalSection(mutex);
}

int pthread_mutex_destroy(pthread_mutex_t *mutex)
{
	DeleteCriticalSection(mutex);
}

int pthread_mutex_lock(pthread_mutex_t *mutex)
{
	EnterCriticalSection(mutex);
}

int pthread_mutex_unlock(pthread_mutex_t *mutex)
{
	LeaveCriticalSection(mutex);
}


ça vous parait correct?

edit: ça suffit de faire des macros en fait cheeky

Windows supporte les mutex, et les mutex pouvant etre partagé entres applications, je te conseille largement d'utiliser les mutex plutot que section critiques :


CreateMutex()
WaitForSingleObjetc()
CloseHandle (?? ou ReleaseHandle ? je sais plus tiens..)

pour les parametres msdn est ton amis bien sur wink

Sans compter que les sections critiques posent un pbm, si le thread se termine improprement pendant qu'il est en section critique, ça bloque le reste car l'OS ne dévérouille pas automatiquement la section critique, alors qu'un mutex si...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

48

je pense que tu le fais exprès.
ou alors tu ne connais rien et tu cherches à répondre à tout prix.

J'AI DIT QUE J'UTILISAIS UN SEUL PROCESSUS (ouais je geule)

j'aurais du dire que j'utilisais pas plusieurs processus, je pense. Alors, pour me dire de chercher sur msdn, je pense que tu pouvais éviter ton post.

de toute façon entre temps j'ai porté libpthread sur pocket pc, alors voila quoi.

49

Ca t'empêche pas de rester aimable neutral
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

50

squalyl :
je pense que tu le fais exprès.
ou alors tu ne connais rien et tu cherches à répondre à tout prix.

J'AI DIT QUE J'UTILISAIS UN SEUL PROCESSUS (ouais je geule)

j'aurais du dire que j'utilisais pas plusieurs processus, je pense. Alors, pour me dire de chercher sur msdn, je pense que tu pouvais éviter ton post.

de toute façon entre temps j'ai porté libpthread sur pocket pc, alors voila quoi.

Meme si les section critiques sont plus rapide, les mutex, qui quand il sont annonymes sont local au process (attention process != thread attention) et nomme un mutex permet de ne meme pas avoir a partager une variable globale pour le mutex entre les thread (un peu inutile mais bon)

Ensuite si tu avait lu mon post tu aurais évité de gueuler.

PS: si j'y connais rien je me demande comment j'ai pu citer des fonctions qui existent et qui marche. Je crois que celui qui en connais le moins c'est plutot toi sur le coup... Sinon tu n'aurais pas créée ce topic

PS2 (a pas confondre avec autre chose): vu comment tu apprécis qu'on cherche a t'aider, je crois que ça sera la derniere fois. J'avoue que j'ai du mal a te comprendre. Quand on c'était rencontré a l'open lyon tu etait loin d'etre comme ça, au contraire tu m'avais plutot fait bonne impression par rapport a certaines choses qui avais pu etre dit/fait sur le forum auparavent. La j'avoue que tu casse vraiment bien l'image que j'avais de toi...

PS3: a tiens j'avais loupé le milieu du post de link (#40) enfin bref de toute maniere ça change rien
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

51

d'autres gens ont été plus intéressants que toi dans leurs réponses. et de toute façon je sais ce que je veux savoir. merci ceux qui m'ont aidé , tant pis pour les autres.

je déteste les gens qui ont raison par principe.