Bonjour,
Dans mon appli, je dois utiliser une dll fournie par un partenaire. J'ai donc utilisé JNI, et codé ma dll wrapper.
Mon problème est qu'en fait dans mon programme, j'ai cette structure :
Le problème est que j'ai des crash dû à l'imbrication des threads : "La mémoire ne peut pas être 'read'."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 1er Thread Java { Accés à la dll => création d une arborescence sous Java Récupération du noeud sélectionné 2nd Thread Java { Accés à la dll => récupération des données relatives au noeud sélectionné } }
Les méthodes de la dll accèdent à un fichier et récupèrent des données dans ce fichier.
J'ai testé plusieurs modes de relecture, et à un moment ou à un autre, j'ai un crash (dépend des manip, de l'imbrication des threads ou du système d'exploitation).
Si j'enlève les Threads, je n'ai plus de problème.
Est-il possible de combiner threads Java et JNI ?
Est-ce qu'il faut faire quelque chose de particulier pour que cela fonctionne correctement ? (mutex, ou autre)
Partager