diff options
-rw-r--r-- | debian/patches/libports-lockless-refcounting.patch | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/debian/patches/libports-lockless-refcounting.patch b/debian/patches/libports-lockless-refcounting.patch index cacb7a64..dbfe0314 100644 --- a/debian/patches/libports-lockless-refcounting.patch +++ b/debian/patches/libports-lockless-refcounting.patch @@ -1,4 +1,4 @@ -commit 7f438fd440c0d636ff352924f0b7ec8ebe9f5ae1 +commit f5d4ef14bb47294046d98c06478b0b58c97cf521 Author: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sat May 3 01:02:35 2014 +0200 @@ -7,6 +7,7 @@ Date: Sat May 3 01:02:35 2014 +0200 * libports/refcount.h: New file with reference counting primitives. * libports/ports.h (struct port_info): Use the new type. * libports/bucket-iterate.c: Adjust accordingly. + * libports/complete-deallocate.c: Likewise. * libports/create-internal.c: Likewise. * libports/get-right.c: Likewise. * libports/import-port.c: Likewise. @@ -32,6 +33,19 @@ index 498cf13..38a9f7a 100644 p[n] = pi; n++; } +diff --git a/libports/complete-deallocate.c b/libports/complete-deallocate.c +index 8ce095b..7e7d467 100644 +--- a/libports/complete-deallocate.c ++++ b/libports/complete-deallocate.c +@@ -35,6 +35,8 @@ _ports_complete_deallocate (struct port_info *pi) + pi->port_right = MACH_PORT_NULL; + } + ++ pthread_mutex_lock (&_ports_lock); ++ + *pi->prevp = pi->next; + if (pi->next) + pi->next->prevp = pi->prevp; diff --git a/libports/create-internal.c b/libports/create-internal.c index 8551297..d56637c 100644 --- a/libports/create-internal.c |