[MOS] Utilisation d’ixemul avec plusieurs tâches

9 sujets de 1 à 9 (sur un total de 9)

  • Rmais96

      #5974

      Salut à tous,

      La librairie ixemul est-elle compatible avec une utilisation simultannée par plusieurs tâches ?

      Cela me semblait évident, mais je commence à en douter car toutes mes tentatives donnent systématiquement des exceptions “Illegal Data Access at deadbefb” dés que la second tâche atteint le premier appel à une fonction de la librairie (ex: printf, time, …).

      J’ai testé d’abord avec la version 49.18, puis j’ai compilé la dernière version (49.21) mais le problème persiste.

      Je n’ai pas ce type de problème avec la librairie libnix.

      Est-ce un problème connu de l’ixemul ou y a-t-il une manière particulière d’utiliser cette librairie sous MorphOS ?

      Si vous avez des connaissances sur le sujet, cela m’intéresse.

      leo

        #98377

        Autant que je me souvienne: tu ne peux pas utiliser des fonctions de la dos.library à partir d’une tâche… attention donc…

        Fab1 et les autres développeurs me corrigeront/préciseront si nécessaire je suis sur :)

        Rmais96

          #98378

          Je précise que le problème concerne bien l’utilisation de Process DOS.

          Je pense à un problème de gestion de la concurrence entre les Process. Si c’est le cas, le problème est probablement le même avec des Tasks Exec.

          Merci pour l’idée.

          henes

            #98379

            Utilises-tu vfork() ou libpthread ?

            Si la réponse est “ni l’un ni l’autre”, je envie de dire que tu devrais commencer par là :-)

            Rmais96

              #98380

              Peux-tu détailler un peu ?

              Cela signifie-t-il que l’on ne peut pas utiliser directement la gestion des Process DOS avec Ixemul ?

              Le fichier readme parle bien de vfork, mais il n’est pas très explicite sur ce point.

              Yomgui

                #98381

                Rmais96: Henes veux dire qu’il n’y a pas actuellement de bon port de la lib pthread qui fonctionnent à 95% sur MorphOS et vfork c’est pire…

                En gros tu risque de tomber en les utilisant sur pleins de fonctions qui risquent d’engendrer de multiples bugs dont tu ne sauras te dépêtrer.

                Le mieux étant de se passer de ixemul tout “””simplement”””.

                henes

                  #98382

                  Je voulais dire que je ne suis pas sur qu’un process puisse appeler ixemul sans l’environnement mis en place par ixemul… Donc essaye de faire ça 100% posix en utilisant pthread (mais il n’y en a pas de potable) ou vfork (mouarf)… ou alors essaye d’ouvrir ixemul dans chaque process qui l’utilise.

                  Mais je dit ça un peu au pif car je ne sais pas vraiment en fait.

                  D’un autre côté, printf & co ne sont pas multithread safe par définition. Je ne me souviens plus si la spec a évolué entre temps ou pas… Des versions multithread safe sont arrivées dans les Unix actuels après des années…

                  Enfin, de toute façon, un bon truc unix/posix like n’est pas multithreadé mais utilise select() à outrance. C’est ça l’esprit mamouthix :-)

                  Rmais96

                    #98383

                    Si je comprends bien, le mieux est de se passer de l’utilisation de ixemul dans la mesure du possible.

                    Je vais pour l’instant essayer de m’en tenir à la libnix.

                    Merci pour vos avis et votre retour d’expérience.

                    Yomgui

                      #98384

                      Petite picouse de rappel pour Rmais96:

                      MorphOS n’est pas un Unix, ni très POSIX…. alors pourquoi s’embêter à vouloir faire comme si?

                      Evidement qu’il faut faire du natif… voyons! ;-)

                    9 sujets de 1 à 9 (sur un total de 9)

                    • Vous devez être connecté pour répondre à ce sujet.

                    Forums AmigaOS, MorphOS et AROS Développement [MOS] Utilisation d’ixemul avec plusieurs tâches

                    Amiga Impact