[JNI] Problème dû aux threads Java
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 :
Code:
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é
}
} |
Le problème est que j'ai des crash dû à l'imbrication des threads : "La mémoire ne peut pas être 'read'."
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)