1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-25 00:51:21 +00:00

Update to version 20120512

PR:		port/167944
Submitted by:	Timothy Beyer <beyert@cs.ucr.edu> (maintainer)
This commit is contained in:
Pawel Pekala 2012-05-16 22:11:56 +00:00
parent ab3da0c113
commit 07f55e998c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=296801
3 changed files with 3 additions and 58 deletions

View File

@ -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

View File

@ -1,2 +1,2 @@
SHA256 (urweb-20120329.tgz) = 9f6866bc5663f173157ae6e822bde728581ebdbd2aeb3bb3a1ecf0c0964e691f
SIZE (urweb-20120329.tgz) = 828756
SHA256 (urweb-20120512.tgz) = 35a8e7481caa74fc224f556807844899043b3af2c8bae085b9204275318e9d25
SIZE (urweb-20120512.tgz) = 838543

View File

@ -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;