Make thread-specific data support build under Windows (but don't enable it yet)
authorKen Raeburn <raeburn@mit.edu>
Wed, 7 Jul 2004 01:34:08 +0000 (01:34 +0000)
committerKen Raeburn <raeburn@mit.edu>
Wed, 7 Jul 2004 01:34:08 +0000 (01:34 +0000)
* threads.c (struct tsd_block) [_WIN32]: Define.
(k5_setspecific) [_WIN32]: Don't fill in a 'next' field.  Fix variable
reference for TSD key.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16551 dc483132-0cff-0310-8789-dd5450dbe970

src/util/support/ChangeLog
src/util/support/threads.c

index 534868d3a1450cb2c25313a61af20a5d1ebab3b1..36e8fefe8ada45a2466ec61e1ffaf1fd2194211f 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-06  Ken Raeburn  <raeburn@mit.edu>
+
+       * threads.c (struct tsd_block) [_WIN32]: Define.
+       (k5_setspecific) [_WIN32]: Don't fill in a 'next' field.  Fix
+       variable reference for TSD key.
+
 2004-06-24  Ken Raeburn  <raeburn@mit.edu>
 
        * threads.c: Reorganize code: One definition of each function,
index d80091b39c7391940334f62210935612c2928554..b6741c02360382872ae99a432d493b38a973d0d7 100644 (file)
@@ -47,6 +47,9 @@ static unsigned char destructors_set[K5_KEY_MAX];
 
 static DWORD tls_idx;
 static CRITICAL_SECTION key_lock;
+struct tsd_block {
+  void *values[K5_KEY_MAX];
+};
 static void (*destructors[K5_KEY_MAX])(void *);
 static unsigned char destructors_set[K5_KEY_MAX];
 
@@ -204,8 +207,8 @@ int k5_setspecific (k5_key_t keynum, void *value)
        for (i = 0; i < K5_KEY_MAX; i++)
            t->values[i] = 0;
        /* add to global linked list */
-       t->next = 0;
-       err = TlsSetValue(key, t);
+       /*      t->next = 0; */
+       err = TlsSetValue(tls_idx, t);
        if (err) {
            free(t);
            return err;