summaryrefslogtreecommitdiff
path: root/debian/patches/libports-lockless-refcounting.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/libports-lockless-refcounting.patch')
-rw-r--r--debian/patches/libports-lockless-refcounting.patch16
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