From 8d98d2cb95ac37147a4de5a119869211e8351324 Mon Sep 17 00:00:00 2001 From: Mark Hammond Date: Sat, 19 Apr 2003 15:41:53 +0000 Subject: New PyGILState_ API - implements pep 311, from patch 684256. --- Python/thread_sgi.h | 80 ----------------------------------------------------- 1 file changed, 80 deletions(-) (limited to 'Python/thread_sgi.h') diff --git a/Python/thread_sgi.h b/Python/thread_sgi.h index 0fceb21444..e246538679 100644 --- a/Python/thread_sgi.h +++ b/Python/thread_sgi.h @@ -377,83 +377,3 @@ void PyThread_release_lock(PyThread_type_lock lock) if (usunsetlock((ulock_t) lock) < 0) perror("usunsetlock"); } - -/* - * Per-thread data ("key") support. - */ - -struct key { - struct key *next; - long id; - int key; - void *value; -}; - -static struct key *keyhead = NULL; -static int nkeys = 0; -static PyThread_type_lock keymutex = NULL; - -static struct key *find_key(int key, void *value) -{ - struct key *p; - long id = PyThread_get_thread_ident(); - for (p = keyhead; p != NULL; p = p->next) { - if (p->id == id && p->key == key) - return p; - } - if (value == NULL) - return NULL; - p = (struct key *)malloc(sizeof(struct key)); - if (p != NULL) { - p->id = id; - p->key = key; - p->value = value; - PyThread_acquire_lock(keymutex, 1); - p->next = keyhead; - keyhead = p; - PyThread_release_lock(keymutex); - } - return p; -} - -int PyThread_create_key(void) -{ - if (keymutex == NULL) - keymutex = PyThread_allocate_lock(); - return ++nkeys; -} - -void PyThread_delete_key(int key) -{ - struct key *p, **q; - PyThread_acquire_lock(keymutex, 1); - q = &keyhead; - while ((p = *q) != NULL) { - if (p->key == key) { - *q = p->next; - free((void *)p); - /* NB This does *not* free p->value! */ - } - else - q = &p->next; - } - PyThread_release_lock(keymutex); -} - -int PyThread_set_key_value(int key, void *value) -{ - struct key *p = find_key(key, value); - if (p == NULL) - return -1; - else - return 0; -} - -void *PyThread_get_key_value(int key) -{ - struct key *p = find_key(key, NULL); - if (p == NULL) - return NULL; - else - return p->value; -} -- cgit v1.2.1