[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