[Pcsclite-cvs-commit] r4882 - in /trunk/PCSC/src: eventhandler.c hotplug_libhal.c hotplug_libusb.c hotplug_linux.c hotplug_macosx.c thread_generic.h thread_unix.c utils.c utils.h winscard_svc.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Sun Apr 18 11:39:14 UTC 2010


Author: rousseau
Date: Sun Apr 18 11:39:09 2010
New Revision: 4882

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4882
Log:
Directly use pthread_* instead of SYS_Thread* indirection

Move SYS_ThreadCreate in utils.c. This function is not just one
pthread_* call

Modified:
    trunk/PCSC/src/eventhandler.c
    trunk/PCSC/src/hotplug_libhal.c
    trunk/PCSC/src/hotplug_libusb.c
    trunk/PCSC/src/hotplug_linux.c
    trunk/PCSC/src/hotplug_macosx.c
    trunk/PCSC/src/thread_generic.h
    trunk/PCSC/src/thread_unix.c
    trunk/PCSC/src/utils.c
    trunk/PCSC/src/utils.h
    trunk/PCSC/src/winscard_svc.c

Modified: trunk/PCSC/src/eventhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/eventhandler.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/eventhandler.c (original)
+++ trunk/PCSC/src/eventhandler.c Sun Apr 18 11:39:09 2010
@@ -177,15 +177,15 @@
 	if ((IFD_SUCCESS == rv) && (1 == dwGetSize) && ucGetData[0])
 	{
 		Log1(PCSC_LOG_INFO, "Killing polling thread");
-		(void)SYS_ThreadCancel(rContext->pthThread);
+		(void)pthread_cancel(rContext->pthThread);
 	}
 	else
 		Log1(PCSC_LOG_INFO, "Waiting polling thread");
 
 	/* wait for the thread to finish */
-	rv = SYS_ThreadJoin(rContext->pthThread, NULL);
+	rv = pthread_join(rContext->pthThread, NULL);
 	if (rv)
-		Log2(PCSC_LOG_ERROR, "SYS_ThreadJoin failed: %s", strerror(rv));
+		Log2(PCSC_LOG_ERROR, "pthread_join failed: %s", strerror(rv));
 
 	/*
 	 * Zero out the public status struct to allow it to be recycled and
@@ -251,11 +251,11 @@
 	rContext->readerState->cardProtocol = SCARD_PROTOCOL_UNDEFINED;
 
 	rContext->pthCardEvent = card_event;
-	rv = SYS_ThreadCreate(&rContext->pthThread, 0,
+	rv = ThreadCreate(&rContext->pthThread, 0,
 		(PCSCLITE_THREAD_FUNCTION( ))EHStatusHandlerThread, (LPVOID) rContext);
 	if (rv)
 	{
-		Log2(PCSC_LOG_ERROR, "SYS_ThreadCreate failed: %s", strerror(rv));
+		Log2(PCSC_LOG_ERROR, "ThreadCreate failed: %s", strerror(rv));
 		return SCARD_E_NO_MEMORY;
 	}
 	else
@@ -518,7 +518,7 @@
 			(void)EHSignalEventToClients();
 			Log1(PCSC_LOG_INFO, "Die");
 			rContext->hLockId = 0;
-			(void)SYS_ThreadExit(NULL);
+			(void)pthread_exit(NULL);
 		}
 	}
 }

Modified: trunk/PCSC/src/hotplug_libhal.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/hotplug_libhal.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/hotplug_libhal.c (original)
+++ trunk/PCSC/src/hotplug_libhal.c Sun Apr 18 11:39:09 2010
@@ -591,7 +591,7 @@
 
 	libhal_free_string_array(device_names);
 
-	(void)SYS_ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
+	(void)ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
 		(PCSCLITE_THREAD_FUNCTION( )) HPEstablishUSBNotifications, NULL);
 
 	return 0;

Modified: trunk/PCSC/src/hotplug_libusb.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/hotplug_libusb.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/hotplug_libusb.c (original)
+++ trunk/PCSC/src/hotplug_libusb.c Sun Apr 18 11:39:09 2010
@@ -453,7 +453,7 @@
 	}
 
 	if (HPReadBundleValues())
-		SYS_ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
+		ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
 			(PCSCLITE_THREAD_FUNCTION( )) HPEstablishUSBNotifications, NULL);
 
 	return 0;

Modified: trunk/PCSC/src/hotplug_linux.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/hotplug_linux.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/hotplug_linux.c (original)
+++ trunk/PCSC/src/hotplug_linux.c Sun Apr 18 11:39:09 2010
@@ -388,7 +388,7 @@
 
 	HPReadBundleValues();
 
-	SYS_ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
+	ThreadCreate(&usbNotifyThread, THREAD_ATTR_DETACHED,
 		(PCSCLITE_THREAD_FUNCTION( )) HPEstablishUSBNotifications, 0);
 
 	return 0;

Modified: trunk/PCSC/src/hotplug_macosx.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/hotplug_macosx.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/hotplug_macosx.c (original)
+++ trunk/PCSC/src/hotplug_macosx.c Sun Apr 18 11:39:09 2010
@@ -30,7 +30,7 @@
 #include "parser.h"
 #include "readerfactory.h"
 #include "winscard_msg.h"
-#include "sys_generic.h"
+#include "utils.h"
 #include "hotplug.h"
 
 #undef DEBUG_HOTPLUG
@@ -804,7 +804,7 @@
  */
 ULONG HPRegisterForHotplugEvents(void)
 {
-	SYS_ThreadCreate(&sHotplugWatcherThread,
+	ThreadCreate(&sHotplugWatcherThread,
 		THREAD_ATTR_DEFAULT,
 		(PCSCLITE_THREAD_FUNCTION( )) HPDeviceNotificationThread, NULL);
 

Modified: trunk/PCSC/src/thread_generic.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/thread_generic.h?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/thread_generic.h (original)
+++ trunk/PCSC/src/thread_generic.h Sun Apr 18 11:39:09 2010
@@ -40,15 +40,6 @@
 	int SYS_MutexLock(PCSCLITE_MUTEX *);
 	int SYS_MutexTryLock(PCSCLITE_MUTEX *);
 	int SYS_MutexUnLock(PCSCLITE_MUTEX *);
-	int SYS_ThreadCreate(PCSCLITE_THREAD_T *, int, PCSCLITE_THREAD_FUNCTION( ),
-		/*@null@*/ LPVOID);
-	int SYS_ThreadCancel(PCSCLITE_THREAD_T);
-	int SYS_ThreadDetach(PCSCLITE_THREAD_T);
-	int SYS_ThreadJoin(PCSCLITE_THREAD_T, /*@null@*/ LPVOID*);
-	int SYS_ThreadExit(/*@null@*/ LPVOID);
-	PCSCLITE_THREAD_T SYS_ThreadSelf(void);
-	int SYS_ThreadEqual(PCSCLITE_THREAD_T *, PCSCLITE_THREAD_T *);
-	int SYS_ThreadSetCancelType(int, int *);
 
 #ifdef __cplusplus
 }

Modified: trunk/PCSC/src/thread_unix.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/thread_unix.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/thread_unix.c (original)
+++ trunk/PCSC/src/thread_unix.c Sun Apr 18 11:39:09 2010
@@ -61,64 +61,3 @@
 		return -1;
 }
 
-INTERNAL int SYS_ThreadCreate(PCSCLITE_THREAD_T * pthThread, int attributes,
-	PCSCLITE_THREAD_FUNCTION(pvFunction), LPVOID pvArg)
-{
-	pthread_attr_t attr;
-	int ret;
-
-	ret = pthread_attr_init(&attr);
-	if (ret)
-		return ret;
-
-	ret = pthread_attr_setdetachstate(&attr,
-		attributes & THREAD_ATTR_DETACHED ? PTHREAD_CREATE_DETACHED : PTHREAD_CREATE_JOINABLE);
-	if (ret)
-	{
-		(void)pthread_attr_destroy(&attr);
-		return ret;
-	}
-
-	ret = pthread_create(pthThread, &attr, pvFunction, pvArg);
-	if (ret)
-		return ret;
-
-	ret = pthread_attr_destroy(&attr);
-	return ret;
-}
-
-INTERNAL int SYS_ThreadCancel(PCSCLITE_THREAD_T pthThread)
-{
-	return pthread_cancel(pthThread);
-}
-
-INTERNAL int SYS_ThreadDetach(PCSCLITE_THREAD_T pthThread)
-{
-	return pthread_detach(pthThread);
-}
-
-INTERNAL int SYS_ThreadJoin(PCSCLITE_THREAD_T pthThread, LPVOID* pvRetVal)
-{
-	return pthread_join(pthThread, pvRetVal);
-}
-
-INTERNAL int SYS_ThreadExit(LPVOID pvRetVal)
-{
-	pthread_exit(pvRetVal);
-}
-
-INTERNAL PCSCLITE_THREAD_T SYS_ThreadSelf(void)
-{
-	return pthread_self();
-}
-
-INTERNAL int SYS_ThreadEqual(PCSCLITE_THREAD_T *pthThread1, PCSCLITE_THREAD_T *pthThread2)
-{
-	return pthread_equal(*pthThread1, *pthThread2);
-}
-
-INTERNAL int SYS_ThreadSetCancelType(int type, int *oldtype)
-{
-	return pthread_setcanceltype(type, oldtype);
-}
-

Modified: trunk/PCSC/src/utils.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/utils.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/utils.c (original)
+++ trunk/PCSC/src/utils.c Sun Apr 18 11:39:09 2010
@@ -21,6 +21,7 @@
 #include <signal.h>
 #include <dirent.h>
 #include <fcntl.h>
+#include <pthread.h>
 
 #include "config.h"
 #include "debuglog.h"
@@ -115,3 +116,28 @@
 	return r.tv_sec * 1000000 + r.tv_usec;
 } /* time_sub */
 
+int ThreadCreate(PCSCLITE_THREAD_T * pthThread, int attributes,
+	PCSCLITE_THREAD_FUNCTION(pvFunction), LPVOID pvArg)
+{
+	pthread_attr_t attr;
+	int ret;
+
+	ret = pthread_attr_init(&attr);
+	if (ret)
+		return ret;
+
+	ret = pthread_attr_setdetachstate(&attr,
+		attributes & THREAD_ATTR_DETACHED ? PTHREAD_CREATE_DETACHED : PTHREAD_CREATE_JOINABLE);
+	if (ret)
+	{
+		(void)pthread_attr_destroy(&attr);
+		return ret;
+	}
+
+	ret = pthread_create(pthThread, &attr, pvFunction, pvArg);
+	if (ret)
+		return ret;
+
+	ret = pthread_attr_destroy(&attr);
+	return ret;
+}

Modified: trunk/PCSC/src/utils.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/utils.h?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/utils.h (original)
+++ trunk/PCSC/src/utils.h Sun Apr 18 11:39:09 2010
@@ -25,5 +25,8 @@
 
 long int time_sub(struct timeval *a, struct timeval *b);
 
+int ThreadCreate(PCSCLITE_THREAD_T *, int, PCSCLITE_THREAD_FUNCTION( ),
+	/*@null@*/ LPVOID);
+
 #endif
 

Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=4882&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Sun Apr 18 11:39:09 2010
@@ -37,7 +37,7 @@
 #include "winscard_msg.h"
 #include "winscard_svc.h"
 #include "sys_generic.h"
-#include "thread_generic.h"
+#include "utils.h"
 #include "readerfactory.h"
 #include "eventhandler.h"
 #include "simclist.h"
@@ -201,13 +201,13 @@
 		goto error;
 	}
 
-	rv = SYS_ThreadCreate(&(newContext->pthThread), THREAD_ATTR_DETACHED,
+	rv = ThreadCreate(&(newContext->pthThread), THREAD_ATTR_DETACHED,
 		(PCSCLITE_THREAD_FUNCTION( )) ContextThread, (LPVOID) newContext);
 	if (rv)
 	{
 		int lrv2;
 
-		Log2(PCSC_LOG_CRITICAL, "SYS_ThreadCreate failed: %s", strerror(rv));
+		Log2(PCSC_LOG_CRITICAL, "ThreadCreate failed: %s", strerror(rv));
 		(void)SYS_MutexLock(&contextsList_lock);
 		lrv2 = list_delete(&contextsList, newContext);
 		(void)SYS_MutexUnLock(&contextsList_lock);
@@ -764,7 +764,7 @@
 exit:
 	(void)close(filedes);
 	(void)MSGCleanupClient(threadContext);
-	(void)SYS_ThreadExit((LPVOID) NULL);
+	(void)pthread_exit((LPVOID) NULL);
 }
 
 LONG MSGSignalClient(uint32_t filedes, LONG rv)




More information about the Pcsclite-cvs-commit mailing list