Re: RES: Parallel Process with readers - pcsc-lite
Michael StJohns <[email protected]>
| Newsgroups | gmane.comp.lib.muscle |
|---|---|
| Message-ID | <[email protected]> |
At 03:45 PM 7/3/2013, Ludovic Rousseau wrote: >2013/7/3 MURILO COSTA <[email protected]>: >> I thought that maybe can be a Java problem, do you know some software to do this kind of test (parallelism) ? I'll check if pcsc-tools can do that... > >I guess it is a javax.smartcardio "limitation". > >You need to create one context per reader using SCardEstablishContext. >I bet the Java wrapper creates only one context for all the readers. >In pcsc-lite the context is associated to a mutex. So all your >commands will block on the same mutex even if they use different >readers. >I don't know if is it easy or even possible to avoid this Java wrapper >"feature". Probably not - here's the source code from the default provider implementation for JDK7. It even comments that it uses the same context id for each of these: final class PCSCTerminals extends CardTerminals { // SCARDCONTEXT, currently shared between all threads/terminals private static long contextId; // terminal state used by waitForCard() private Map<String,ReaderState> stateMap; PCSCTerminals() { // empty } static synchronized void initContext() throws PCSCException { if (contextId == 0) { contextId = SCardEstablishContext(SCARD_SCOPE_USER); } } One way around this is to grab the source code and build yourself a different provider using the code as a base. Mike >> Do you think that issue have some relationship with this Ludovic post: >> http://ludovicrousseau.blogspot.com.br/2013/06/ccid-descriptor-statistics_7148.html > >No. > >Bye > >-- > Dr. Ludovic Rousseau > >_______________________________________________ >Muscle mailing list >[email protected] >http://lists.musclecard.com/mailman/listinfo/muscle_lists.musclecard.com