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
_______________________________________________
Muscle mailing list
[email protected]
http://lists.musclecard.com/mailman/listinfo/muscle_lists.musclecard.com