J'ai un code objectif-c qui utilise un NSLock pour implémenter un type de transaction. L'objet est verrouillé sur une "transaction de début", plusieurs autres appels sont effectués avec le verrou en place, puis il est libéré avec un "commit". J'écris une couche de colle JNI pour accéder à ce code à partir de Java, mais le verrou se comporte différemment dans JNI par rapport au code objc pur.Mutex dans JNI utilisant Foundation NSLock
J'ai des tests unitaires dans Java et objc qui exercent le code qui rend le verrou. Le test objc réussit, mais dans le test Java [anNSLock tryLock] renvoie false même si [un verrou anNSLock] n'a pas été appelé.
Existe-t-il une manière recommandée d'avoir un mutex dans JNI? Je ne suis pas sûr du mécanisme sous-jacent de NSLock.
Merci!
Merci pour les suggestions. Je pense que la page ci-dessous sera utile, car elle parle de mutex en plus de MonitorEnter, etc. http://java.sun.com/docs/books/jni/html/other.html Je pense que ma question était un peu flou (synchroniser est probablement une solution, mais surveiller entrée/sortie pourrait fonctionner). J'ai réécrit la première partie à lire: 'J'ai un code objectif-c qui utilise un NSLock pour implémenter un type de transaction. L'objet est verrouillé sur une "transaction de début", plusieurs autres appels sont effectués avec le verrou en place, puis il est libéré avec un "commit". – spieden
Autorisez-vous l'accès à partir de threads Java et non-Java? – jdigital
Seulement à partir de threads Java. – spieden