diff options
Diffstat (limited to 'accel-pptpd/triton')
-rw-r--r-- | accel-pptpd/triton/spinlock.h | 2 | ||||
-rw-r--r-- | accel-pptpd/triton/triton.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/accel-pptpd/triton/spinlock.h b/accel-pptpd/triton/spinlock.h index 5ef9c48..b13cde6 100644 --- a/accel-pptpd/triton/spinlock.h +++ b/accel-pptpd/triton/spinlock.h @@ -2,7 +2,7 @@ #define __TRITON_SPINLOCK_H #ifdef GCC_SPINLOCK -typedef unsigned char spinlock_t; +typedef volatile unsigned char spinlock_t; #define spin_lock(l) {while(__sync_lock_test_and_set(l,1));} #define spin_unlock(l) __sync_lock_release(l) #define SPINLOCK_INITIALIZER 0 diff --git a/accel-pptpd/triton/triton.c b/accel-pptpd/triton/triton.c index ce880e9..d793904 100644 --- a/accel-pptpd/triton/triton.c +++ b/accel-pptpd/triton/triton.c @@ -74,6 +74,9 @@ static void* triton_thread(struct _triton_thread_t *thread) sigwait(&set, &sig); //printf("thread %p: exit sigwait\n", thread); __sync_fetch_and_add(&triton_stat.thread_active, 1); + + if (!thread->ctx) + continue; } cont: |