summaryrefslogtreecommitdiff
path: root/debian/patches/translators-list0003-libfshelp-improve-translator-list.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-11-24 01:34:02 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-11-24 01:34:02 +0100
commiteae82693bf1ed63dd63e5c2d78522bab37ab4ac5 (patch)
tree6ff6a32d9b657af4d6ada80ef4fe4308cfbf53ab /debian/patches/translators-list0003-libfshelp-improve-translator-list.patch
parent549ac3913528c331eb90e0e21aa98cf97a50e345 (diff)
drop old patch series
Diffstat (limited to 'debian/patches/translators-list0003-libfshelp-improve-translator-list.patch')
-rw-r--r--debian/patches/translators-list0003-libfshelp-improve-translator-list.patch127
1 files changed, 0 insertions, 127 deletions
diff --git a/debian/patches/translators-list0003-libfshelp-improve-translator-list.patch b/debian/patches/translators-list0003-libfshelp-improve-translator-list.patch
deleted file mode 100644
index 203a2f96..00000000
--- a/debian/patches/translators-list0003-libfshelp-improve-translator-list.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From f2b791571de10efefd4357e4bb6bdfa4e2d0c218 Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Tue, 24 Nov 2015 01:20:57 +0100
-Subject: [PATCH hurd 3/4] libfshelp: improve translator list
-
-Use the path names of active translators as keys in the hash table.
-
-* libfshelp/translator-list.c (hash, compare): New functions.
-(translator_ihash): Use generalized key interface.
-(fshelp_set_active_translator): Update accordingly.
-(fshelp_remove_active_translator): Likewise.
----
- libfshelp/translator-list.c | 59 +++++++++++++++++++++++++++------------------
- 1 file changed, 35 insertions(+), 24 deletions(-)
-
-diff --git a/libfshelp/translator-list.c b/libfshelp/translator-list.c
-index 87d7f6a..fa754ae 100644
---- a/libfshelp/translator-list.c
-+++ b/libfshelp/translator-list.c
-@@ -1,6 +1,6 @@
- /* A list of active translators.
-
-- Copyright (C) 2013,14 Free Software Foundation, Inc.
-+ Copyright (C) 2013,14,15 Free Software Foundation, Inc.
-
- Written by Justus Winter <4winter@informatik.uni-hamburg.de>
-
-@@ -39,18 +39,12 @@ struct translator
- mach_port_t active;
- };
-
--/* The list of active translators. */
--static struct hurd_ihash translator_ihash
-- = HURD_IHASH_INITIALIZER (HURD_IHASH_NO_LOCP);
--
--/* The lock protecting the translator_ihash. */
--static pthread_mutex_t translator_ihash_lock = PTHREAD_MUTEX_INITIALIZER;
--
-+/* The hash table requires some callback functions. */
- static void
--translator_ihash_cleanup (void *element, void *arg)
-+cleanup (void *value, void *arg)
- {
- error_t err;
-- struct translator *translator = element;
-+ struct translator *translator = value;
-
- if (translator->pi)
- ports_port_deref (translator->pi);
-@@ -60,6 +54,26 @@ translator_ihash_cleanup (void *element, void *arg)
- free (translator);
- }
-
-+static hurd_ihash_key_t
-+hash (void *key)
-+{
-+ const char *path = key;
-+ return (hurd_ihash_key_t) hurd_ihash_fasthash32 (path, strlen (path), 0);
-+}
-+
-+static int
-+compare (void *a, void *b)
-+{
-+ return strcmp ((const char *) a, (const char *) b) == 0;
-+}
-+
-+/* The list of active translators. */
-+static struct hurd_ihash translator_ihash
-+ = HURD_IHASH_INITIALIZER_GKI (HURD_IHASH_NO_LOCP, cleanup, hash, compare);
-+
-+/* The lock protecting the translator_ihash. */
-+static pthread_mutex_t translator_ihash_lock = PTHREAD_MUTEX_INITIALIZER;
-+
- /* Record an active translator being bound to the given file name
- NAME. ACTIVE is the control port of the translator. */
- error_t
-@@ -68,20 +82,16 @@ fshelp_set_active_translator (struct port_info *pi,
- mach_port_t active)
- {
- error_t err = 0;
-- pthread_mutex_lock (&translator_ihash_lock);
--
-- if (! translator_ihash.cleanup)
-- hurd_ihash_set_cleanup (&translator_ihash, translator_ihash_cleanup, NULL);
-+ struct translator *t;
-+ hurd_ihash_locp_t slot;
-
-- struct translator *t = NULL;
-- HURD_IHASH_ITERATE (&translator_ihash, value)
-- {
-- t = value;
-- if (strcmp (name, t->name) == 0)
-- goto update; /* Entry exists. */
-- }
-+ pthread_mutex_lock (&translator_ihash_lock);
-+ t = hurd_ihash_locp_find (&translator_ihash, (hurd_ihash_key_t) name,
-+ &slot);
-+ if (t)
-+ goto update; /* Entry exists. */
-
-- t = malloc (sizeof (struct translator));
-+ t = malloc (sizeof *t);
- if (! t)
- {
- err = errno;
-@@ -98,7 +108,8 @@ fshelp_set_active_translator (struct port_info *pi,
- goto out;
- }
-
-- err = hurd_ihash_add (&translator_ihash, (hurd_ihash_key_t) t, t);
-+ err = hurd_ihash_locp_add (&translator_ihash, slot,
-+ (hurd_ihash_key_t) t->name, t);
- if (err)
- goto out;
-
-@@ -165,7 +176,7 @@ fshelp_remove_active_translator (mach_port_t active)
- }
-
- if (t)
-- hurd_ihash_remove (&translator_ihash, (hurd_ihash_key_t) t);
-+ hurd_ihash_remove (&translator_ihash, (hurd_ihash_key_t) t->name);
-
- pthread_mutex_unlock (&translator_ihash_lock);
- return err;
---
-2.1.4
-