[Pcsclite-cvs-commit] r2461 - trunk/PCSC/src

Ludovic Rousseau rousseau at alioth.debian.org
Tue Mar 6 09:35:45 CET 2007


Author: rousseau
Date: 2007-03-06 08:35:45 +0000 (Tue, 06 Mar 2007)
New Revision: 2461

Modified:
   trunk/PCSC/src/winscard_clnt.c
Log:
move call to SCardCheckDaemonAvailability() from
SCardEstablishContextTH() to SCardEstablishContext() to move it oustide
of SCardLockThread()/SCardUnlockThread() since
SCardCheckDaemonAvailability() may also lock (and then deadlock)


Modified: trunk/PCSC/src/winscard_clnt.c
===================================================================
--- trunk/PCSC/src/winscard_clnt.c	2007-03-06 08:30:59 UTC (rev 2460)
+++ trunk/PCSC/src/winscard_clnt.c	2007-03-06 08:35:45 UTC (rev 2461)
@@ -245,6 +245,10 @@
 
 	PROFILE_START
 
+	/* Check if the server is running */
+	if (SCardCheckDaemonAvailability() != SCARD_S_SUCCESS)
+		return SCARD_E_NO_SERVICE;
+
 	SCardLockThread();
 	rv = SCardEstablishContextTH(dwScope, pvReserved1,
 		pvReserved2, phContext);
@@ -294,10 +298,6 @@
 	else
 		*phContext = 0;
 
-	/* Check if the server is running */
-	if (SCardCheckDaemonAvailability() != SCARD_S_SUCCESS)
-		return SCARD_E_NO_SERVICE;
-
 	/*
 	 * Do this only once:
 	 * - Initialize debug of need.




More information about the Pcsclite-cvs-commit mailing list