From 3ee82e344cfdc0dc357bd69f319305d9b1253437 Mon Sep 17 00:00:00 2001
From: Mattias Andrée <maandree@operamail.com>
Date: Wed, 17 Sep 2014 21:05:21 +0200
Subject: fix TLS error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Mattias Andrée <maandree@operamail.com>
---
 src/libgamma_native_error.pyx | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

(limited to 'src')

diff --git a/src/libgamma_native_error.pyx b/src/libgamma_native_error.pyx
index 5c419cc..fb2d8d2 100644
--- a/src/libgamma_native_error.pyx
+++ b/src/libgamma_native_error.pyx
@@ -23,13 +23,15 @@ from posix.unistd cimport gid_t
 from libc.string cimport strerror as c_strerror
 
 
-cdef extern gid_t libgamma_group_gid
+cdef extern gid_t libgamma_group_gid_get()
+cdef extern void libgamma_group_gid_set(gid_t)
 '''
 Group that the user needs to be a member of if
 `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
 '''
 
-cdef extern const char* libgamma_group_name
+cdef extern const char* libgamma_group_name_get()
+cdef extern void libgamma_group_name_set(const char*)
 '''
 Group that the user needs to be a member of if
 `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned,
@@ -85,7 +87,7 @@ def libgamma_native_get_group_gid() -> int:
     Group that the user needs to be a member of if
     `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
     '''
-    return int(libgamma_group_gid)
+    return int(libgamma_group_gid_get())
 
 def libgamma_native_set_group_gid(gid : int):
     '''
@@ -94,8 +96,7 @@ def libgamma_native_set_group_gid(gid : int):
     Group that the user needs to be a member of if
     `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
     '''
-    global libgamma_group_gid
-    libgamma_group_gid = <int>gid
+    libgamma_group_gid_set(<int>gid)
 
 
 def libgamma_native_get_group_name() -> str:
@@ -107,10 +108,12 @@ def libgamma_native_get_group_name() -> str:
     `None` if the name of the group `libgamma_group_gid`
     cannot be determined.
     '''
+    cdef const char* group_name
     cdef bytes bs
-    if libgamma_group_name is NULL:
+    group_name = libgamma_group_name_get()
+    if group_name is NULL:
         return None
-    bs = libgamma_group_name
+    bs = group_name
     return bs.decode('utf-8', 'strict')
 
 def libgamma_native_set_group_name(name : str):
@@ -122,13 +125,14 @@ def libgamma_native_set_group_name(name : str):
     `None` if the name of the group `libgamma_group_gid`
     cannot be determined.
     '''
-    global libgamma_group_name
+    cdef const char* group_name
     cdef bytes bs
     if name is None:
-        libgamma_group_name = <char*>NULL
+        libgamma_group_name_set(<char*>NULL)
         return
     bs = name.encode('utf-8') + bytes([0])
-    libgamma_group_name = bs
+    group_name = bs
+    libgamma_group_name_set(group_name)
 
 
 def libgamma_native_perror(name : str, error_code : int):
-- 
cgit v1.2.3-70-g09d2