Comment créer des threads sur Amiga ?
8 sujets de 16 à 23 (sur un total de 23)
- 1
- 2
-
Comment puis-je faire pour passer des arguments à un process lors de sa creation ?
J’ai bien vu qu’il existe la fonction ReadArgs et le tag NP_Arguments mais j’ai du mal à en cerner le fonctionnement !
Merci
PS: désolé pour le double-post mais sa me parait « justifié »
A600 + 604n + RTC + Vampire V2 600, Coffin R54 / wb3.1.4.1
A1200 + Vampire V2 1200, wb3.1.4.1ModSalut,
Grosso modo…
Côté pere :
struct MonMessage
{
struct Message msg;
LONG dataapasseraufils;
};
message = AllocVec(sizeof(struct MonMessage), MEMF_CLEAR|MEMF_PUBLIC);
if(message)
{
message->msg.champ à initialiser (voir doc)
/*forbid/permit obligatoire. le fils peut ne plus exister entre findport et putmsg */
Forbid();
if(portdufils = FindPort(« Nomduportdufile »)) != NULL)
{
PutMsg(portdufils, messagedupere);
}
Permit();
}
Côté fils :
Ajouter un port avec un nom.
Wait(portdufils);
/* plusieurs messages peuvent attendre sur un signal */
While(msg = GetMsg(portdufils))
{
… traiter le message
/* choisir qui libère la ressource du message, soit le fils (cas: pas de réponse au père) soit le père, on renvoie le message */
FreeVec(msg);
OU
ReplyMsg(msg); /* (et c’est le père qui nettoie */
}
http://www.cunningham-lee.com/misc/amiga_exec.html
@Tcheko :
Merci mais étant donné que je veut faire un tableau de process dans mon main et instancier plusieurs fois la fonction (une instance par process), le message n’est pas valable car chaque port de message aura le même nom pour chaque process.
C’est justement pour cela que je veut passer un argument au démarrage du process, pour lui passer sont numéro !
Merci, je vais expérimenter sa ce soi, sa me semble être la meilleur solution !
Vivement un support du multiprocesseur sur un OS amiga !
A600 + 604n + RTC + Vampire V2 600, Coffin R54 / wb3.1.4.1
A1200 + Vampire V2 1200, wb3.1.4.1
8 sujets de 16 à 23 (sur un total de 23)
- 1
- 2
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Comment créer des threads sur Amiga ?