AllocPooled
-
J’ai beau regarder je vois pas où Gofro indique qu’il n’utilise pas les sémaphores système… En même temps je vois pas trop comment il pourrait faire autrement(un petit Disable/Permit
Bref Gofro n’a jamais dit qu’il n’utilisait pas les semaphores Exec, juste qu’avec son système s’était plus facile (bhein oui aux dernières nouvelles dans les pools d’Exec y a pas de semaphore attaché, donc faut en créer un manuellement pour chaque pool le memoriser, et penser à le détruire en même temps que le semaphore bref ça devient vite lourdingue lorsque tu gères plusieurs piscines simultanées. Enfin sauf si t’es maitre-nageur
Donc pour moi oui son truc est plus pratique, en suivant ton raisonnement dans Exec on n’aurait pas AllocPool, ni AllocVec : AllocMem peut tout faire c’est juste au programmeur de savoir s’en servir comme il faut et de maintenir la taille allouée et/ou la liste des espaces libres dans sa grosse allocation…
Si tu appelles cela être méchant et que cela mérite des insultes
En même temps il a juste dit “petit con” pas
là oui tu aurais pu parler d’insultes. Mais même en relisant je vois juste “petit con”… Il n’empêche que le plus pratique serait d’intégrer l'(obtain/release)semaphore() dans les fonctions d’allocation mémoire. Comme ça, pas besoin de s’emmerder avec des FLib_OPool() et FLib_RPool() pour chaque allocation dès lors qu’on partage un pool entre plusieurs tâches.
Cela dit, j’admets que ça peut ajouter une petite latence de faire ça systématiquement si on reste toujours dans le même contexte, mais c’est probablement négligeable en regard du temps pris par l’allocation elle-même. Mais ça pourrait être un flag lors de la création du pool (mais d’où tiens-je cette idée ??)
C’est une bonne idée un tout cas, même si dans le vrai monde le processus d’allocation est tellement rapide que les changements de contextes en plein millieux sont nuls.
Dans mon vrai monde, les piscines sont utilisées le plus souvent pour créer des noeuds. D’ou l’utilité du semaphore embarqué:
1. Tu bloques la piscine
2. Tu Alloues le noeud et ses données
3. Tu lie le noeud à une liste
4. Tu libère la piscine.
Le sémaphore embarqué protège alors les allocations ET la liste.
Beaucoup d’bras qui s’agitent dès qu’on parle de sémaphores…
Moi aussi, j’serais vach’té fier d’avoir pu/su écrire un truc comme Feelin…
Balaize, quand même… non ?
Et comme tout l’monde dit que les sémaphores c’est pas si terrible, j’vais voir ce qu’il en retourne…
(M**de ! c’est pas 10 ans qui va m’falloir mais 20 ! pour écrire mon Helloword… )
F_voilà F_du F_Feelin..
Blagues à part…
Dès que je dominerai un peu plus la compile et ses mystères, j’essaierai plus à fond…
Car pour l’instant, trop d’erreurs … que je ne sais réparer.. pour un bleu comme moi… mais avec l’expérience qui sait…
Par contre, Feelin m’avait tapé dans l’oeil (aïe) dès le début… et si tu te souviens posait chez quelques problèmes non résolus…
Mais la dernière version fonctionne bien …
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › AllocPooled