diff options
author | Tobias Junghans <tobydox@veyon.io> | 2018-11-07 13:03:16 +0100 |
---|---|---|
committer | Tobias Junghans <tobydox@veyon.io> | 2018-11-19 07:49:11 +0100 |
commit | 2411769962b1c95015bfc2d0c817a34213afbbc9 (patch) | |
tree | 6ebb42dcf64aa816ebcc5a057549b9dd2e1bebda /libvncserver | |
parent | cfdbb94038e76ff002e3d68dc6b1ca0df2606ef6 (diff) | |
download | libtdevnc-2411769962b1c95015bfc2d0c817a34213afbbc9.tar.gz libtdevnc-2411769962b1c95015bfc2d0c817a34213afbbc9.zip |
LibVNCServer: properly use thread-local storage
The TLS macro never has been defined due to the missing
LIBVNCSERVER_HAVE_TLS macro. This revises the macro logic to also cover
Win32 builds with MSVC.
Diffstat (limited to 'libvncserver')
-rw-r--r-- | libvncserver/tight.c | 7 | ||||
-rw-r--r-- | libvncserver/zlib.c | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/libvncserver/tight.c b/libvncserver/tight.c index 1081c8f..d6f4749 100644 --- a/libvncserver/tight.c +++ b/libvncserver/tight.c @@ -57,10 +57,11 @@ * that we resort to using thread local storage instead of having * per-client data. */ -#if LIBVNCSERVER_HAVE_LIBPTHREAD && LIBVNCSERVER_HAVE_TLS && !defined(TLS) && defined(__linux__) +#if defined(__GNUC__) #define TLS __thread -#endif -#ifndef TLS +#elif defined(_MSC_VER) +#define TLS __declspec(thread) +#else #define TLS #endif diff --git a/libvncserver/zlib.c b/libvncserver/zlib.c index 45a1314..6fee4df 100644 --- a/libvncserver/zlib.c +++ b/libvncserver/zlib.c @@ -45,10 +45,11 @@ * tight. N.B. ZRLE does it the traditional way with per-client storage * (and so at least ZRLE will work threaded on older systems.) */ -#if LIBVNCSERVER_HAVE_LIBPTHREAD && LIBVNCSERVER_HAVE_TLS && !defined(TLS) && defined(__linux__) +#if defined(__GNUC__) #define TLS __thread -#endif -#ifndef TLS +#elif defined(_MSC_VER) +#define TLS __declspec(thread) +#else #define TLS #endif |