aboutsummaryrefslogtreecommitdiff
path: root/lang/urweb
diff options
context:
space:
mode:
authorPawel Pekala <pawel@FreeBSD.org>2012-05-16 22:11:56 +0000
committerPawel Pekala <pawel@FreeBSD.org>2012-05-16 22:11:56 +0000
commit07f55e998c7282bb6bf919cf2b5d68298c9390f6 (patch)
treed201b07030cbbcdfae0b5ee6509d95c779fe1070 /lang/urweb
parentab3da0c11360b96960b11136e604b8807d724d77 (diff)
downloadports-07f55e998c7282bb6bf919cf2b5d68298c9390f6.tar.gz
ports-07f55e998c7282bb6bf919cf2b5d68298c9390f6.zip
Notes
Diffstat (limited to 'lang/urweb')
-rw-r--r--lang/urweb/Makefile3
-rw-r--r--lang/urweb/distinfo4
-rw-r--r--lang/urweb/files/patch-urweb.c54
3 files changed, 3 insertions, 58 deletions
diff --git a/lang/urweb/Makefile b/lang/urweb/Makefile
index 87263ce07296..7947c711d8ec 100644
--- a/lang/urweb/Makefile
+++ b/lang/urweb/Makefile
@@ -5,8 +5,7 @@
# $FreeBSD$
PORTNAME= urweb
-PORTVERSION= 20120329
-PORTREVISION= 1
+PORTVERSION= 20120512
CATEGORIES= lang www
MASTER_SITES= http://www.impredicative.com/ur/
EXTRACT_SUFX= .tgz
diff --git a/lang/urweb/distinfo b/lang/urweb/distinfo
index 6db6b7e19903..9c43fde6b255 100644
--- a/lang/urweb/distinfo
+++ b/lang/urweb/distinfo
@@ -1,2 +1,2 @@
-SHA256 (urweb-20120329.tgz) = 9f6866bc5663f173157ae6e822bde728581ebdbd2aeb3bb3a1ecf0c0964e691f
-SIZE (urweb-20120329.tgz) = 828756
+SHA256 (urweb-20120512.tgz) = 35a8e7481caa74fc224f556807844899043b3af2c8bae085b9204275318e9d25
+SIZE (urweb-20120512.tgz) = 838543
diff --git a/lang/urweb/files/patch-urweb.c b/lang/urweb/files/patch-urweb.c
deleted file mode 100644
index 83482c9aaa59..000000000000
--- a/lang/urweb/files/patch-urweb.c
+++ /dev/null
@@ -1,54 +0,0 @@
---- src/c/urweb.c.orig Thu Mar 29 11:23:35 2012 -0400
-+++ src/c/urweb.c Sun Apr 08 13:47:57 2012 -0700
-@@ -159,13 +159,7 @@
- static client **clients, *clients_free, *clients_used;
- static unsigned n_clients;
-
--static pthread_mutex_t clients_mutex =
-- #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
-- PTHREAD_RECURSIVE_MUTEX_INITIALIZER
-- #else
-- PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-- #endif
-- ;
-+static pthread_mutex_t clients_mutex = PTHREAD_MUTEX_INITIALIZER;
- size_t uw_messages_max = SIZE_MAX;
- size_t uw_clients_max = SIZE_MAX;
-
-@@ -230,20 +224,23 @@
- }
-
- static const char begin_msgs[] = "Content-type: text/plain\r\n\r\n";
-+static pthread_t pruning_thread;
-+static int pruning_thread_initialized = 0;
-
- static client *find_client(unsigned id) {
- client *c;
--
-- pthread_mutex_lock(&clients_mutex);
-+ int i_am_pruner = pruning_thread_initialized && pthread_equal(pruning_thread, pthread_self());
-+
-+ if (!i_am_pruner) pthread_mutex_lock(&clients_mutex);
-
- if (id >= n_clients) {
-- pthread_mutex_unlock(&clients_mutex);
-+ if (!i_am_pruner) pthread_mutex_unlock(&clients_mutex);
- return NULL;
- }
-
- c = clients[id];
-
-- pthread_mutex_unlock(&clients_mutex);
-+ if (!i_am_pruner) pthread_mutex_unlock(&clients_mutex);
- return c;
- }
-
-@@ -3291,6 +3288,8 @@
- cutoff = time(NULL) - ctx->app->timeout;
-
- pthread_mutex_lock(&clients_mutex);
-+ pruning_thread = pthread_self();
-+ pruning_thread_initialized = 1;
-
- for (c = clients_used; c; c = next) {
- next = c->next;