mirror of
https://github.com/lammertb/libhttp.git
synced 2025-08-07 16:02:55 +03:00
Made httplib_pthread_self global
This commit is contained in:
5
Makefile
5
Makefile
@@ -386,7 +386,7 @@ OBJLIST = \
|
||||
${OBJDIR}win32_pthread_mutex_lock${OBJEXT} \
|
||||
${OBJDIR}win32_pthread_mutex_trylock${OBJEXT} \
|
||||
${OBJDIR}win32_pthread_mutex_unlock${OBJEXT} \
|
||||
${OBJDIR}win32_pthread_self${OBJEXT} \
|
||||
${OBJDIR}httplib_pthread_self${OBJEXT} \
|
||||
${OBJDIR}win32_pthread_setspecific${OBJEXT} \
|
||||
${OBJDIR}wince_gmtime${OBJEXT} \
|
||||
${OBJDIR}wince_gmtime_s${OBJEXT} \
|
||||
@@ -1461,8 +1461,7 @@ ${OBJDIR}win32_pthread_mutex_unlock${OBJEXT} : ${SRCDIR}win32_pthread_mutex_u
|
||||
${SRCDIR}httplib_main.h \
|
||||
${INCDIR}libhttp.h
|
||||
|
||||
${OBJDIR}win32_pthread_self${OBJEXT} : ${SRCDIR}win32_pthread_self.c \
|
||||
${SRCDIR}httplib_pthread.h \
|
||||
${OBJDIR}httplib_pthread_self${OBJEXT} : ${SRCDIR}httplib_pthread_self.c \
|
||||
${SRCDIR}httplib_main.h \
|
||||
${INCDIR}libhttp.h
|
||||
|
||||
|
@@ -100,6 +100,7 @@ LibHTTP is often used as HTTP and HTTPS library inside a larger application. A
|
||||
* [`httplib_lock_connection( conn );`](api/httplib_lock_connection.md)
|
||||
* [`httplib_lock_context( ctx );`](api/httplib_lock_context.md)
|
||||
* [`httplib_poll( pfd, nfds, timeout );`](api/httplib_poll.md)
|
||||
* [`httplib_pthread_self();`](api/httplib_pthread_self.md)
|
||||
* [`httplib_start_thread( f, p );`](api/httplib_start_thread.md)
|
||||
* [`httplib_unlock_connection( conn );`](api/httplib_unlock_connection.md)
|
||||
* [`httplib_unlock_context( ctx );`](api/httplib_unlock_context.md)
|
||||
|
@@ -70,6 +70,8 @@
|
||||
|
||||
#define SIGKILL (0)
|
||||
|
||||
typedef HANDLE pthread_t;
|
||||
|
||||
#else /* _WIN32 */
|
||||
|
||||
/*
|
||||
@@ -80,6 +82,7 @@
|
||||
#include <sys/poll.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
|
||||
#endif /* _WIN32 */
|
||||
@@ -980,6 +983,7 @@ LIBHTTP_API int httplib_kill( pid_t pid, int sig_num );
|
||||
LIBHTTP_API int httplib_mkdir( const char *path, int mode );
|
||||
LIBHTTP_API DIR * httplib_opendir( const char *name );
|
||||
LIBHTTP_API int httplib_poll( struct pollfd *pfd, unsigned int nfds, int timeout );
|
||||
LIBHTTP_API pthread_t httplib_pthread_self( void );
|
||||
LIBHTTP_API struct dirent * httplib_readdir( DIR *dir );
|
||||
LIBHTTP_API int httplib_remove( const char *path );
|
||||
LIBHTTP_API void httplib_set_alloc_callback_func( httplib_alloc_callback_func log_func );
|
||||
|
@@ -272,7 +272,6 @@ typedef long off_t;
|
||||
|
||||
typedef HANDLE pthread_mutex_t;
|
||||
typedef DWORD pthread_key_t;
|
||||
typedef HANDLE pthread_t;
|
||||
typedef struct {
|
||||
CRITICAL_SECTION threadIdSec;
|
||||
struct httplib_workerTLS * waiting_thread; /* The chain of threads */
|
||||
|
@@ -82,7 +82,7 @@ static void master_thread_run(void *thread_func_param) {
|
||||
&& ((USE_MASTER_THREAD_PRIORITY) >= min_prio)) {
|
||||
struct sched_param sched_param = {0};
|
||||
sched_param.sched_priority = (USE_MASTER_THREAD_PRIORITY);
|
||||
pthread_setschedparam(pthread_self(), SCHED_RR, &sched_param);
|
||||
pthread_setschedparam( httplib_pthread_self(), SCHED_RR, & sched_param );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -48,6 +48,5 @@ int pthread_mutex_unlock( pthread_mutex_t *mutex );
|
||||
|
||||
void * pthread_getspecific( pthread_key_t key );
|
||||
int pthread_setspecific( pthread_key_t key, void *value );
|
||||
DWORD pthread_self( void );
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
@@ -26,23 +26,26 @@
|
||||
*/
|
||||
|
||||
#include "httplib_main.h"
|
||||
#include "httplib_pthread.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
/*
|
||||
* DWORD pthread_self( void );
|
||||
* pthread_t httplib_pthread_self( void );
|
||||
*
|
||||
* The function pthread_self() returns in ID describing the current thread. On
|
||||
* windows where there is no support for the pthread() library, this
|
||||
* implementation provides a comparable function which can be used as an
|
||||
* alternative.
|
||||
* The function httplib_pthread_self() provides a platform independent way to
|
||||
* retrieve an ID associated with the current thread. On systems which support
|
||||
* it a call to pthread_self() is used. Otherwise a system specific value is
|
||||
* returned which best resembles the functionality of the pthread_ equivalent.
|
||||
*/
|
||||
|
||||
DWORD pthread_self( void ) {
|
||||
pthread_t httplib_pthread_self( void ) {
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
return GetCurrentThreadId();
|
||||
|
||||
} /* pthread_self */
|
||||
#else /* _WIN32 */
|
||||
|
||||
return pthread_self();
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
} /* httplib_pthread_self */
|
@@ -79,7 +79,7 @@ void XX_httplib_set_thread_name(const char *name) {
|
||||
#elif defined(__GLIBC__) \
|
||||
&& ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 12)))
|
||||
/* pthread_setname_np first appeared in glibc in version 2.12*/
|
||||
pthread_setname_np(pthread_self(), threadName);
|
||||
pthread_setname_np( httplib_pthread_self(), threadName );
|
||||
#elif defined(__linux__)
|
||||
/* on linux we can use the old prctl function */
|
||||
prctl(PR_SET_NAME, threadName, 0, 0, 0);
|
||||
|
@@ -75,7 +75,7 @@ unsigned long XX_httplib_ssl_id_callback( void ) {
|
||||
* can rise a warning/error, depending on the platform.
|
||||
* Here memcpy is used as an anything-to-anything cast. */
|
||||
unsigned long ret = 0;
|
||||
pthread_t t = pthread_self();
|
||||
pthread_t t = httplib_pthread_self();
|
||||
memcpy(&ret, &t, sizeof(pthread_t));
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user