Author: mturk
Date: Tue Apr 19 05:45:01 2011
New Revision: 1094858
URL: http://svn.apache.org/viewvc?rev=1094858&view=rev
Log:
Axe thread local ring
Modified:
commons/sandbox/runtime/trunk/src/main/native/include/acr/jniapi.h
commons/sandbox/runtime/trunk/src/main/native/os/unix/init.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/init.c
Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr/jniapi.h
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr/jniapi.h?rev=1094858&r1=1094857&r2=1094858&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr/jniapi.h
(original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr/jniapi.h Tue Apr
19 05:45:01 2011
@@ -18,21 +18,6 @@
#define _ACR_JNIAPI_H_
#include "acr/jnitypes.h"
-#include "acr/ring.h"
-
-/**
- * The prototype for any ACR thread local storage destructor function.
- */
-typedef void (*acr_tls_destructor_t)(const void *, void *);
-typedef struct acr_tlsd_t {
- ACR_RING_ENTRY(acr_tlsd_t) link;
- const void *key;
- void *val;
- /** Destroy callback.
- * If NULL pr_mfree(val) will be called
- */
- acr_tls_destructor_t dtor;
-} acr_tlsd_t;
#define ACR_SAVE_ERROR(err) AcrSetThreadError((err))
#define ACR_SAVE_OS_ERROR() AcrSetThreadError(ACR_GET_OS_ERROR())
Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/init.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/init.c?rev=1094858&r1=1094857&r2=1094858&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/init.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/init.c Tue Apr 19
05:45:01 2011
@@ -28,8 +28,6 @@ static pthread_mutex_t _lib_mutex = P
typedef struct tlsd_t
{
- /** Private thread strorage list */
- ACR_RING_HEAD(_cr_tlsd_s, acr_tlsd_t) tlsd;
JNIEnv *env;
int attached;
int error;
@@ -38,18 +36,8 @@ typedef struct tlsd_t
static void _threadkey_destructor(void *data)
{
- acr_tlsd_t *p;
- acr_tlsd_t *c;
tlsd_t *env = (tlsd_t *)data;
- ACR_RING_FOREACH_SAFE(c, p, &env->tlsd, acr_tlsd_t, link) {
- ACR_RING_REMOVE(c, link);
- if (c->dtor)
- c->dtor(c->key, c->val);
- else
- AcrFree(c->val);
- AcrFree(c);
- }
if (env->attached && _java_vm != 0) {
/* Detach current thread */
(*_java_vm)->DetachCurrentThread(_java_vm);
@@ -69,7 +57,6 @@ static tlsd_t *_threadkey_get(void)
return 0;
}
else {
- ACR_RING_INIT(&env->tlsd, acr_tlsd_t, link);
env->id = (((acr_u64_t)P2J(pthread_self())) >> 3);
pthread_setspecific(_threadkey, env);
}
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/init.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/init.c?rev=1094858&r1=1094857&r2=1094858&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/init.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/init.c Tue Apr 19
05:45:01 2011
@@ -35,8 +35,6 @@ HANDLE acr_raised_event
typedef struct tlsd_t
{
- /** Private thread strorage list */
- ACR_RING_HEAD(_cr_tlsd_s, acr_tlsd_t) tlsd;
JNIEnv *env;
int attached;
int error;
@@ -45,18 +43,8 @@ typedef struct tlsd_t
static void _threadkey_destructor(void *data)
{
- acr_tlsd_t *p;
- acr_tlsd_t *c;
tlsd_t *env = (tlsd_t *)data;
- ACR_RING_FOREACH_SAFE(c, p, &env->tlsd, acr_tlsd_t, link) {
- ACR_RING_REMOVE(c, link);
- if (c->dtor)
- c->dtor(c->key, c->val);
- else
- AcrFree(c->val);
- AcrFree(c);
- }
if (env->attached && _java_vm != 0) {
/* Detach current thread */
(*_java_vm)->DetachCurrentThread(_java_vm);
@@ -76,7 +64,6 @@ static tlsd_t *_threadkey_get(void)
return 0;
}
else {
- ACR_RING_INIT(&env->tlsd, acr_tlsd_t, link);
env->id = GetCurrentThreadId();
TlsSetValue(_threadkey, env);
}