diff options
| author | Tom Tromey | 2012-08-15 13:11:22 -0600 |
|---|---|---|
| committer | Tom Tromey | 2012-08-15 13:11:22 -0600 |
| commit | 51100bb8d36f68842ab55fd0501af56dfc58cc51 (patch) | |
| tree | 6c94b7f893304276b43c57bd12eff92d914a7cd2 /src/alloc.c | |
| parent | 1dcacbc64721b1a4de58aa36460b0a39e766be63 (diff) | |
| download | emacs-51100bb8d36f68842ab55fd0501af56dfc58cc51.tar.gz emacs-51100bb8d36f68842ab55fd0501af56dfc58cc51.zip | |
This supplies the mutex implementation for Emacs Lisp.
A lisp mutex is implemented using a condition variable, so that we can
interrupt a mutex-lock operation by calling thread-signal on the
blocking thread. I did things this way because pthread_mutex_lock
can't readily be interrupted.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index 69742a325d1..80d22d61d66 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3104,6 +3104,8 @@ sweep_vectors (void) | |||
| 3104 | 3104 | ||
| 3105 | if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_THREAD)) | 3105 | if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_THREAD)) |
| 3106 | finalize_one_thread ((struct thread_state *) vector); | 3106 | finalize_one_thread ((struct thread_state *) vector); |
| 3107 | else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_MUTEX)) | ||
| 3108 | finalize_one_mutex ((struct Lisp_Mutex *) vector); | ||
| 3107 | 3109 | ||
| 3108 | next = ADVANCE (vector, nbytes); | 3110 | next = ADVANCE (vector, nbytes); |
| 3109 | 3111 | ||