svn commit: r258656 - in projects/random_number_generator: cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libzpool/common cddl/contrib/opensolaris/lib/libzpool/common/sys contrib/a...

Mark Murray markm at FreeBSD.org
Tue Nov 26 16:13:44 UTC 2013


Author: markm
Date: Tue Nov 26 16:13:38 2013
New Revision: 258656
URL: http://svnweb.freebsd.org/changeset/base/258656

Log:
  MFC - tracking commit.

Added:
  projects/random_number_generator/sys/cddl/compat/opensolaris/sys/disp.h
     - copied unchanged from r258654, head/sys/cddl/compat/opensolaris/sys/disp.h
Deleted:
  projects/random_number_generator/contrib/apr-util/test/testssl.c
  projects/random_number_generator/sys/cddl/compat/opensolaris/sys/taskq.h
Modified:
  projects/random_number_generator/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
  projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c
  projects/random_number_generator/contrib/apr-util/CHANGES
  projects/random_number_generator/contrib/apr-util/apr-util.spec
  projects/random_number_generator/contrib/apr-util/configure
  projects/random_number_generator/contrib/apr-util/crypto/apr_crypto.c
  projects/random_number_generator/contrib/apr-util/dbd/apr_dbd.c
  projects/random_number_generator/contrib/apr-util/dbd/apr_dbd_odbc.c
  projects/random_number_generator/contrib/apr-util/dbm/apr_dbm.c
  projects/random_number_generator/contrib/apr-util/include/apr_buckets.h
  projects/random_number_generator/contrib/apr-util/include/apr_dbd.h
  projects/random_number_generator/contrib/apr-util/include/apr_hooks.h
  projects/random_number_generator/contrib/apr-util/include/apr_optional_hooks.h
  projects/random_number_generator/contrib/apr-util/include/apr_queue.h
  projects/random_number_generator/contrib/apr-util/include/apr_reslist.h
  projects/random_number_generator/contrib/apr-util/include/apu.hw
  projects/random_number_generator/contrib/apr-util/include/apu_version.h
  projects/random_number_generator/contrib/apr-util/libaprutil.rc
  projects/random_number_generator/contrib/apr-util/memcache/apr_memcache.c
  projects/random_number_generator/contrib/apr-util/misc/apu_dso.c
  projects/random_number_generator/contrib/apr-util/test/abts.c
  projects/random_number_generator/contrib/apr-util/test/testpass.c
  projects/random_number_generator/contrib/gcc/ChangeLog.gcc43
  projects/random_number_generator/contrib/gcc/config/rs6000/rs6000.c
  projects/random_number_generator/contrib/gcc/cp/decl.c
  projects/random_number_generator/contrib/llvm/tools/clang/lib/Headers/emmintrin.h
  projects/random_number_generator/sbin/growfs/growfs.8
  projects/random_number_generator/share/man/man4/axge.4
  projects/random_number_generator/share/man/man4/u3g.4
  projects/random_number_generator/share/man/man4/usb.4
  projects/random_number_generator/share/man/man9/SDT.9
  projects/random_number_generator/share/misc/bsd-family-tree
  projects/random_number_generator/sys/cam/ctl/ctl_backend_block.c
  projects/random_number_generator/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c
  projects/random_number_generator/sys/cddl/compat/opensolaris/sys/sdt.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h
  projects/random_number_generator/sys/cddl/dev/dtrace/dtrace_test.c
  projects/random_number_generator/sys/cddl/dev/sdt/sdt.c
  projects/random_number_generator/sys/compat/freebsd32/freebsd32_misc.c
  projects/random_number_generator/sys/compat/linux/linux_dtrace.h
  projects/random_number_generator/sys/dev/iwi/if_iwi.c
  projects/random_number_generator/sys/dev/iwn/if_iwn_debug.h
  projects/random_number_generator/sys/dev/iwn/if_iwnreg.h
  projects/random_number_generator/sys/dev/usb/wlan/if_run.c
  projects/random_number_generator/sys/dev/xen/blkback/blkback.c
  projects/random_number_generator/sys/fs/nfsclient/nfs_clkdtrace.c
  projects/random_number_generator/sys/kern/kern_clock.c
  projects/random_number_generator/sys/kern/kern_exec.c
  projects/random_number_generator/sys/kern/kern_exit.c
  projects/random_number_generator/sys/kern/kern_fork.c
  projects/random_number_generator/sys/kern/kern_priv.c
  projects/random_number_generator/sys/kern/kern_proc.c
  projects/random_number_generator/sys/kern/kern_racct.c
  projects/random_number_generator/sys/kern/kern_sdt.c
  projects/random_number_generator/sys/kern/kern_sig.c
  projects/random_number_generator/sys/kern/kern_synch.c
  projects/random_number_generator/sys/kern/kern_thread.c
  projects/random_number_generator/sys/kern/kern_timeout.c
  projects/random_number_generator/sys/kern/sched_4bsd.c
  projects/random_number_generator/sys/kern/sched_ule.c
  projects/random_number_generator/sys/kern/subr_devstat.c
  projects/random_number_generator/sys/kern/subr_turnstile.c
  projects/random_number_generator/sys/kern/uipc_syscalls.c
  projects/random_number_generator/sys/kern/vfs_cache.c
  projects/random_number_generator/sys/kern/vfs_lookup.c
  projects/random_number_generator/sys/kern/vfs_syscalls.c
  projects/random_number_generator/sys/net/netisr.c
  projects/random_number_generator/sys/net/vnet.c
  projects/random_number_generator/sys/netinet/in_kdtrace.c
  projects/random_number_generator/sys/netinet/in_kdtrace.h
  projects/random_number_generator/sys/netinet/sctp_dtrace_define.h
  projects/random_number_generator/sys/netinet/tcp_input.c
  projects/random_number_generator/sys/netinet/tcp_output.c
  projects/random_number_generator/sys/netinet/tcp_subr.c
  projects/random_number_generator/sys/opencrypto/deflate.c
  projects/random_number_generator/sys/powerpc/pseries/phyp_console.c
  projects/random_number_generator/sys/security/mac/mac_framework.c
  projects/random_number_generator/sys/security/mac/mac_internal.h
  projects/random_number_generator/sys/sys/sdt.h
  projects/random_number_generator/sys/tools/vnode_if.awk
  projects/random_number_generator/tools/tools/zfsboottest/Makefile
  projects/random_number_generator/usr.sbin/bhyve/acpi.c
  projects/random_number_generator/usr.sbin/bhyve/mptbl.c
  projects/random_number_generator/usr.sbin/bhyve/pci_ahci.c
  projects/random_number_generator/usr.sbin/iostat/iostat.c
Directory Properties:
  projects/random_number_generator/   (props changed)
  projects/random_number_generator/cddl/   (props changed)
  projects/random_number_generator/cddl/contrib/opensolaris/   (props changed)
  projects/random_number_generator/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/   (props changed)
  projects/random_number_generator/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
  projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/random_number_generator/contrib/apr-util/   (props changed)
  projects/random_number_generator/contrib/gcc/   (props changed)
  projects/random_number_generator/contrib/llvm/   (props changed)
  projects/random_number_generator/contrib/llvm/tools/clang/   (props changed)
  projects/random_number_generator/sbin/   (props changed)
  projects/random_number_generator/share/man/man4/   (props changed)
  projects/random_number_generator/sys/   (props changed)
  projects/random_number_generator/sys/cddl/contrib/opensolaris/   (props changed)
  projects/random_number_generator/usr.sbin/bhyve/   (props changed)

Modified: projects/random_number_generator/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -186,7 +186,7 @@ static const ztest_shared_opts_t ztest_o
 
 extern uint64_t metaslab_gang_bang;
 extern uint64_t metaslab_df_alloc_threshold;
-extern uint64_t zfs_deadman_synctime;
+extern uint64_t zfs_deadman_synctime_ms;
 
 static ztest_shared_opts_t *ztest_shared_opts;
 static ztest_shared_opts_t ztest_opts;
@@ -5328,10 +5328,10 @@ ztest_deadman_thread(void *arg)
 	hrtime_t delta, total = 0;
 
 	for (;;) {
-		delta = (zs->zs_thread_stop - zs->zs_thread_start) /
-		    NANOSEC + zfs_deadman_synctime;
+		delta = zs->zs_thread_stop - zs->zs_thread_start +
+		    MSEC2NSEC(zfs_deadman_synctime_ms);
 
-		(void) poll(NULL, 0, (int)(1000 * delta));
+		(void) poll(NULL, 0, (int)NSEC2MSEC(delta));
 
 		/*
 		 * If the pool is suspended then fail immediately. Otherwise,
@@ -5342,12 +5342,12 @@ ztest_deadman_thread(void *arg)
 		if (spa_suspended(spa)) {
 			fatal(0, "aborting test after %llu seconds because "
 			    "pool has transitioned to a suspended state.",
-			    zfs_deadman_synctime);
+			    zfs_deadman_synctime_ms / 1000);
 			return (NULL);
 		}
 		vdev_deadman(spa->spa_root_vdev);
 
-		total += zfs_deadman_synctime;
+		total += zfs_deadman_synctime_ms/1000;
 		(void) printf("ztest has been running for %lld seconds\n",
 		    total);
 	}
@@ -6080,7 +6080,7 @@ main(int argc, char **argv)
 	(void) setvbuf(stdout, NULL, _IOLBF, 0);
 
 	dprintf_setup(&argc, argv);
-	zfs_deadman_synctime = 300;
+	zfs_deadman_synctime_ms = 300000;
 
 	ztest_fd_rand = open("/dev/urandom", O_RDONLY);
 	ASSERT3S(ztest_fd_rand, >=, 0);

Modified: projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -23,6 +23,9 @@
  * Copyright (c) 2013 by Delphix. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  */
+/*
+ * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
+ */
 
 #ifndef _SYS_ZFS_CONTEXT_H
 #define	_SYS_ZFS_CONTEXT_H
@@ -62,6 +65,7 @@ extern "C" {
 #include <inttypes.h>
 #include <fsshare.h>
 #include <pthread.h>
+#include <sched.h>
 #include <sys/debug.h>
 #include <sys/note.h>
 #include <sys/types.h>
@@ -201,6 +205,8 @@ extern int aok;
  */
 #define	curthread	((void *)(uintptr_t)thr_self())
 
+#define	kpreempt(x)	sched_yield()
+
 typedef struct kthread kthread_t;
 
 #define	thread_create(stk, stksize, func, arg, len, pp, state, pri)	\
@@ -367,6 +373,16 @@ typedef struct taskq taskq_t;
 typedef uintptr_t taskqid_t;
 typedef void (task_func_t)(void *);
 
+typedef struct taskq_ent {
+	struct taskq_ent	*tqent_next;
+	struct taskq_ent	*tqent_prev;
+	task_func_t		*tqent_func;
+	void			*tqent_arg;
+	uintptr_t		tqent_flags;
+} taskq_ent_t;
+
+#define	TQENT_FLAG_PREALLOC	0x1	/* taskq_dispatch_ent used */
+
 #define	TASKQ_PREPOPULATE	0x0001
 #define	TASKQ_CPR_SAFE		0x0002	/* Use CPR safe protocol */
 #define	TASKQ_DYNAMIC		0x0004	/* Use dynamic thread scheduling */
@@ -378,6 +394,7 @@ typedef void (task_func_t)(void *);
 #define	TQ_NOQUEUE	0x02		/* Do not enqueue if can't dispatch */
 #define	TQ_FRONT	0x08		/* Queue in front */
 
+
 extern taskq_t *system_taskq;
 
 extern taskq_t	*taskq_create(const char *, int, pri_t, int, int, uint_t);
@@ -386,6 +403,8 @@ extern taskq_t	*taskq_create(const char 
 #define	taskq_create_sysdc(a, b, d, e, p, dc, f) \
 	    (taskq_create(a, b, maxclsyspri, d, e, f))
 extern taskqid_t taskq_dispatch(taskq_t *, task_func_t, void *, uint_t);
+extern void	taskq_dispatch_ent(taskq_t *, task_func_t, void *, uint_t,
+    taskq_ent_t *);
 extern void	taskq_destroy(taskq_t *);
 extern void	taskq_wait(taskq_t *);
 extern int	taskq_member(taskq_t *, void *);

Modified: projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -22,19 +22,15 @@
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
+ */
 
 #include <sys/zfs_context.h>
 
 int taskq_now;
 taskq_t *system_taskq;
 
-typedef struct task {
-	struct task	*task_next;
-	struct task	*task_prev;
-	task_func_t	*task_func;
-	void		*task_arg;
-} task_t;
-
 #define	TASKQ_ACTIVE	0x00010000
 
 struct taskq {
@@ -51,18 +47,18 @@ struct taskq {
 	int		tq_maxalloc;
 	kcondvar_t	tq_maxalloc_cv;
 	int		tq_maxalloc_wait;
-	task_t		*tq_freelist;
-	task_t		tq_task;
+	taskq_ent_t	*tq_freelist;
+	taskq_ent_t	tq_task;
 };
 
-static task_t *
+static taskq_ent_t *
 task_alloc(taskq_t *tq, int tqflags)
 {
-	task_t *t;
+	taskq_ent_t *t;
 	int rv;
 
 again:	if ((t = tq->tq_freelist) != NULL && tq->tq_nalloc >= tq->tq_minalloc) {
-		tq->tq_freelist = t->task_next;
+		tq->tq_freelist = t->tqent_next;
 	} else {
 		if (tq->tq_nalloc >= tq->tq_maxalloc) {
 			if (!(tqflags & KM_SLEEP))
@@ -87,7 +83,7 @@ again:	if ((t = tq->tq_freelist) != NULL
 		}
 		mutex_exit(&tq->tq_lock);
 
-		t = kmem_alloc(sizeof (task_t), tqflags & KM_SLEEP);
+		t = kmem_alloc(sizeof (taskq_ent_t), tqflags & KM_SLEEP);
 
 		mutex_enter(&tq->tq_lock);
 		if (t != NULL)
@@ -97,15 +93,15 @@ again:	if ((t = tq->tq_freelist) != NULL
 }
 
 static void
-task_free(taskq_t *tq, task_t *t)
+task_free(taskq_t *tq, taskq_ent_t *t)
 {
 	if (tq->tq_nalloc <= tq->tq_minalloc) {
-		t->task_next = tq->tq_freelist;
+		t->tqent_next = tq->tq_freelist;
 		tq->tq_freelist = t;
 	} else {
 		tq->tq_nalloc--;
 		mutex_exit(&tq->tq_lock);
-		kmem_free(t, sizeof (task_t));
+		kmem_free(t, sizeof (taskq_ent_t));
 		mutex_enter(&tq->tq_lock);
 	}
 
@@ -116,7 +112,7 @@ task_free(taskq_t *tq, task_t *t)
 taskqid_t
 taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t tqflags)
 {
-	task_t *t;
+	taskq_ent_t *t;
 
 	if (taskq_now) {
 		func(arg);
@@ -130,26 +126,58 @@ taskq_dispatch(taskq_t *tq, task_func_t 
 		return (0);
 	}
 	if (tqflags & TQ_FRONT) {
-		t->task_next = tq->tq_task.task_next;
-		t->task_prev = &tq->tq_task;
+		t->tqent_next = tq->tq_task.tqent_next;
+		t->tqent_prev = &tq->tq_task;
 	} else {
-		t->task_next = &tq->tq_task;
-		t->task_prev = tq->tq_task.task_prev;
+		t->tqent_next = &tq->tq_task;
+		t->tqent_prev = tq->tq_task.tqent_prev;
 	}
-	t->task_next->task_prev = t;
-	t->task_prev->task_next = t;
-	t->task_func = func;
-	t->task_arg = arg;
+	t->tqent_next->tqent_prev = t;
+	t->tqent_prev->tqent_next = t;
+	t->tqent_func = func;
+	t->tqent_arg = arg;
 	cv_signal(&tq->tq_dispatch_cv);
 	mutex_exit(&tq->tq_lock);
 	return (1);
 }
 
 void
+taskq_dispatch_ent(taskq_t *tq, task_func_t func, void *arg, uint_t flags,
+    taskq_ent_t *t)
+{
+	ASSERT(func != NULL);
+	ASSERT(!(tq->tq_flags & TASKQ_DYNAMIC));
+
+	/*
+	 * Mark it as a prealloc'd task.  This is important
+	 * to ensure that we don't free it later.
+	 */
+	t->tqent_flags |= TQENT_FLAG_PREALLOC;
+	/*
+	 * Enqueue the task to the underlying queue.
+	 */
+	mutex_enter(&tq->tq_lock);
+
+	if (flags & TQ_FRONT) {
+		t->tqent_next = tq->tq_task.tqent_next;
+		t->tqent_prev = &tq->tq_task;
+	} else {
+		t->tqent_next = &tq->tq_task;
+		t->tqent_prev = tq->tq_task.tqent_prev;
+	}
+	t->tqent_next->tqent_prev = t;
+	t->tqent_prev->tqent_next = t;
+	t->tqent_func = func;
+	t->tqent_arg = arg;
+	cv_signal(&tq->tq_dispatch_cv);
+	mutex_exit(&tq->tq_lock);
+}
+
+void
 taskq_wait(taskq_t *tq)
 {
 	mutex_enter(&tq->tq_lock);
-	while (tq->tq_task.task_next != &tq->tq_task || tq->tq_active != 0)
+	while (tq->tq_task.tqent_next != &tq->tq_task || tq->tq_active != 0)
 		cv_wait(&tq->tq_wait_cv, &tq->tq_lock);
 	mutex_exit(&tq->tq_lock);
 }
@@ -158,27 +186,32 @@ static void *
 taskq_thread(void *arg)
 {
 	taskq_t *tq = arg;
-	task_t *t;
+	taskq_ent_t *t;
+	boolean_t prealloc;
 
 	mutex_enter(&tq->tq_lock);
 	while (tq->tq_flags & TASKQ_ACTIVE) {
-		if ((t = tq->tq_task.task_next) == &tq->tq_task) {
+		if ((t = tq->tq_task.tqent_next) == &tq->tq_task) {
 			if (--tq->tq_active == 0)
 				cv_broadcast(&tq->tq_wait_cv);
 			cv_wait(&tq->tq_dispatch_cv, &tq->tq_lock);
 			tq->tq_active++;
 			continue;
 		}
-		t->task_prev->task_next = t->task_next;
-		t->task_next->task_prev = t->task_prev;
+		t->tqent_prev->tqent_next = t->tqent_next;
+		t->tqent_next->tqent_prev = t->tqent_prev;
+		t->tqent_next = NULL;
+		t->tqent_prev = NULL;
+		prealloc = t->tqent_flags & TQENT_FLAG_PREALLOC;
 		mutex_exit(&tq->tq_lock);
 
 		rw_enter(&tq->tq_threadlock, RW_READER);
-		t->task_func(t->task_arg);
+		t->tqent_func(t->tqent_arg);
 		rw_exit(&tq->tq_threadlock);
 
 		mutex_enter(&tq->tq_lock);
-		task_free(tq, t);
+		if (!prealloc)
+			task_free(tq, t);
 	}
 	tq->tq_nthreads--;
 	cv_broadcast(&tq->tq_wait_cv);
@@ -217,8 +250,8 @@ taskq_create(const char *name, int nthre
 	tq->tq_nthreads = nthreads;
 	tq->tq_minalloc = minalloc;
 	tq->tq_maxalloc = maxalloc;
-	tq->tq_task.task_next = &tq->tq_task;
-	tq->tq_task.task_prev = &tq->tq_task;
+	tq->tq_task.tqent_next = &tq->tq_task;
+	tq->tq_task.tqent_prev = &tq->tq_task;
 	tq->tq_threadlist = kmem_alloc(nthreads * sizeof (thread_t), KM_SLEEP);
 
 	if (flags & TASKQ_PREPOPULATE) {

Modified: projects/random_number_generator/contrib/apr-util/CHANGES
==============================================================================
--- projects/random_number_generator/contrib/apr-util/CHANGES	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/CHANGES	Tue Nov 26 16:13:38 2013	(r258656)
@@ -1,4 +1,23 @@
                                                      -*- coding: utf-8 -*-
+Changes with APR-util 1.5.3
+
+  *) Cygwin: Use correct file extension when loading APR DSOs.  PR 55587.
+     [Carlo Bramini <carlo.bramix libero.it>]
+
+  *) Add experimental cmake-based build system for Windows.  Refer to
+     README.cmake for more information.  [Jeff Trawick, Tom Donovan]
+
+  *) Fix warnings in odbc driver on 64bit systems.
+     PR 55197  [Tom Donovan]
+
+  *) Add support to apr_memcache for unix domain sockets. PR 54573 [Remi
+     Gacogne <rgacogne+asf aquaray.com>]
+
+  *) Add support for Berkeley DB 6.0. [Rainer Jung]
+
+  *) Improve platform detection for bundled expat by updating
+     config.guess and config.sub. [Rainer Jung]
+
 Changes with APR-util 1.5.2
 
   *) Windows: Add command line makefiles. [Gregg Smith]

Modified: projects/random_number_generator/contrib/apr-util/apr-util.spec
==============================================================================
--- projects/random_number_generator/contrib/apr-util/apr-util.spec	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/apr-util.spec	Tue Nov 26 16:13:38 2013	(r258656)
@@ -3,7 +3,7 @@
 
 Summary: Apache Portable Runtime Utility library
 Name: apr-util
-Version: 1.5.2
+Version: 1.5.3
 Release: 1
 License: Apache Software License
 Group: System Environment/Libraries

Modified: projects/random_number_generator/contrib/apr-util/configure
==============================================================================
--- projects/random_number_generator/contrib/apr-util/configure	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/configure	Tue Nov 26 16:13:38 2013	(r258656)
@@ -1440,7 +1440,7 @@ Optional Packages:
   --with-ldap-lib=path    path to ldap lib file
   --with-ldap=library     ldap library to use
   --with-dbm=DBM          choose the DBM type to use.
-                          DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db4X,db5X}
+                          DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db4X,db5X,db6X}
                           for some X=0,...,9
   --with-gdbm=DIR         enable GDBM support
   --with-ndbm=PATH        Find the NDBM header and library in `PATH/include'
@@ -11218,8 +11218,10 @@ fi
 
       fi
 
-      test ${apu_has_ldap} != "1" && as_fn_error $? "could not find an LDAP library" "$LINENO" 5
-      test ${apu_has_ldap} == "1" &&
+      if test ${apu_has_ldap} != "1"; then
+        as_fn_error $? "could not find an LDAP library" "$LINENO" 5
+      else
+
   if test "x$LDADD_ldap" = "x"; then
     test "x$silent" != "xyes" && echo "  setting LDADD_ldap to \"$LDADD_ldap_found\""
     LDADD_ldap="$LDADD_ldap_found"
@@ -11240,6 +11242,7 @@ fi
     done
   fi
 
+      fi
       as_ac_Lib=`$as_echo "ac_cv_lib_$apu_liblber_name''_ber_init" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ber_init in -l$apu_liblber_name" >&5
 $as_echo_n "checking for ber_init in -l$apu_liblber_name... " >&6; }
@@ -11617,6 +11620,7 @@ fi
     dbm_list="$dbm_list, db$db_version"
     db_version=`expr $db_version + 1`
   done
+  dbm_list="$dbm_list, db60"
 
 
 # Check whether --with-dbm was given.
@@ -15708,7 +15712,7 @@ fi
       as_fn_error $? "Berkeley db3 not found" "$LINENO" 5
     fi
     ;;
-  db[45][0-9])
+  db[456][0-9])
     db_major=`echo "$requested" | sed -e 's/db//' -e 's/.$//'`
     db_minor=`echo "$requested" | sed -e 's/db//' -e 's/.//'`
 
@@ -16113,7 +16117,7 @@ fi
       as_fn_error $? "Berkeley db$db_major not found" "$LINENO" 5
     fi
     ;;
-  db[45])
+  db[456])
     db_major=`echo "$requested" | sed -e 's/db//'`
     # Start version search at version x.9
     db_minor=9
@@ -18561,11 +18565,11 @@ fi
       eval "apu_use_$requested=1"
       apu_default_dbm=$requested
       ;;
-    db185 | db[12345])
+    db185 | db[123456])
       apu_use_db=1
       apu_default_dbm=$requested
       ;;
-    db[45][0-9])
+    db[456][0-9])
       apu_use_db=1
       apu_default_dbm=`echo $requested | sed -e 's/.$//'`
       ;;

Modified: projects/random_number_generator/contrib/apr-util/crypto/apr_crypto.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/crypto/apr_crypto.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/crypto/apr_crypto.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -100,7 +100,9 @@ APU_DECLARE(apr_status_t) apr_crypto_ini
     }
 
     /* Top level pool scope, need process-scope lifetime */
-    for (parent = pool; parent; parent = apr_pool_parent_get(pool))
+    for (parent = apr_pool_parent_get(pool);
+         parent && parent != pool;
+         parent = apr_pool_parent_get(pool))
         pool = parent;
 #if APU_DSO_BUILD
     /* deprecate in 2.0 - permit implicit initialization */
@@ -176,7 +178,7 @@ APU_DECLARE(apr_status_t) apr_crypto_get
 
 #if defined(NETWARE)
     apr_snprintf(modname, sizeof(modname), "crypto%s.nlm", name);
-#elif defined(WIN32)
+#elif defined(WIN32) || defined(__CYGWIN__)
     apr_snprintf(modname, sizeof(modname),
             "apr_crypto_%s-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll", name);
 #else

Modified: projects/random_number_generator/contrib/apr-util/dbd/apr_dbd.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/dbd/apr_dbd.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/dbd/apr_dbd.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -102,8 +102,10 @@ APU_DECLARE(apr_status_t) apr_dbd_init(a
     }
 
     /* Top level pool scope, need process-scope lifetime */
-    for (parent = pool;  parent; parent = apr_pool_parent_get(pool))
-         pool = parent;
+    for (parent = apr_pool_parent_get(pool);
+        parent && parent != pool;
+        parent = apr_pool_parent_get(pool))
+       pool = parent;
 #if APU_DSO_BUILD
     /* deprecate in 2.0 - permit implicit initialization */
     apu_dso_init(pool);
@@ -184,7 +186,7 @@ APU_DECLARE(apr_status_t) apr_dbd_get_dr
 
 #if defined(NETWARE)
     apr_snprintf(modname, sizeof(modname), "dbd%s.nlm", name);
-#elif defined(WIN32)
+#elif defined(WIN32) || defined(__CYGWIN__)
     apr_snprintf(modname, sizeof(modname),
                  "apr_dbd_%s-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll", name);
 #else
@@ -204,7 +206,7 @@ APU_DECLARE(apr_status_t) apr_dbd_get_dr
     }
     apu_dso_mutex_unlock();
 
-#else /* not builtin and !APR_HAS_DSO => not implemented */
+#else /* not builtin and !APU_DSO_BUILD => not implemented */
     rv = APR_ENOTIMPL;
 #endif
 

Modified: projects/random_number_generator/contrib/apr-util/dbd/apr_dbd_odbc.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/dbd/apr_dbd_odbc.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/dbd/apr_dbd_odbc.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -114,9 +114,9 @@ struct apr_dbd_t
     char lastError[MAX_ERROR_STRING];
     int defaultBufferSize;      /* used for CLOBs in text mode, 
                                  * and when fld size is indeterminate */
-    int transaction_mode;
-    int dboptions;              /* driver options re SQLGetData */
-    int default_transaction_mode;
+    intptr_t transaction_mode;
+    intptr_t dboptions;         /* driver options re SQLGetData */
+    intptr_t default_transaction_mode;
     int can_commit;             /* controls end_trans behavior */
 };
 
@@ -359,7 +359,7 @@ static SQLRETURN odbc_set_result_column(
                                         SQLHANDLE stmt)
 {
     SQLRETURN rc;
-    int maxsize, textsize, realsize, type, isunsigned = 1;
+    intptr_t maxsize, textsize, realsize, type, isunsigned = 1;
 
     /* discover the sql type */
     rc = SQLColAttribute(stmt, icol + 1, SQL_DESC_UNSIGNED, NULL, 0, NULL,
@@ -409,7 +409,7 @@ static SQLRETURN odbc_set_result_column(
       type = SQL_C_CHAR;
     }
 
-    res->coltypes[icol] = type;
+    res->coltypes[icol] = (SQLSMALLINT)type;
 
     /* size if retrieved as text */
     rc = SQLColAttribute(stmt, icol + 1, SQL_DESC_DISPLAY_SIZE, NULL, 0,
@@ -441,12 +441,12 @@ static SQLRETURN odbc_set_result_column(
 
         res->colptrs[icol] =  NULL;
         res->colstate[icol] = COL_AVAIL;
-        res->colsizes[icol] = maxsize;
+        res->colsizes[icol] = (SQLINTEGER)maxsize;
         rc = SQL_SUCCESS;
     }
     else {
         res->colptrs[icol] = apr_pcalloc(res->pool, maxsize);
-        res->colsizes[icol] = maxsize;
+        res->colsizes[icol] = (SQLINTEGER)maxsize;
         if (res->apr_dbd->dboptions & SQL_GD_BOUND) {
             /* we are allowed to call SQLGetData if we need to */
             rc = SQLBindCol(stmt, icol + 1, res->coltypes[icol], 
@@ -747,7 +747,7 @@ static void *odbc_get(const apr_dbd_row_
     SQLRETURN rc;
     SQLLEN indicator;
     int state = row->res->colstate[col];
-    int options = row->res->apr_dbd->dboptions;
+    intptr_t options = row->res->apr_dbd->dboptions;
 
     switch (state) {
     case (COL_UNAVAIL):
@@ -817,13 +817,13 @@ static apr_status_t odbc_parse_params(ap
                                int *connect, SQLCHAR **datasource, 
                                SQLCHAR **user, SQLCHAR **password, 
                                int *defaultBufferSize, int *nattrs,
-                               int **attrs, int **attrvals)
+                               int **attrs, intptr_t **attrvals)
 {
     char *seps, *last, *next, *name[MAX_PARAMS], *val[MAX_PARAMS];
     int nparams = 0, i, j;
 
     *attrs = apr_pcalloc(pool, MAX_PARAMS * sizeof(char *));
-    *attrvals = apr_pcalloc(pool, MAX_PARAMS * sizeof(int));
+    *attrvals = apr_pcalloc(pool, MAX_PARAMS * sizeof(intptr_t));
     *nattrs = 0;
     seps = DEFAULTSEPS;
     name[nparams] = apr_strtok(apr_pstrdup(pool, params), seps, &last);
@@ -1062,7 +1062,8 @@ static apr_dbd_t *odbc_open(apr_pool_t *
     SQLHANDLE err_h = NULL;
     SQLCHAR  *datasource = (SQLCHAR *)"", *user = (SQLCHAR *)"",
              *password = (SQLCHAR *)"";
-    int nattrs = 0, *attrs = NULL, *attrvals = NULL, connect = 0;
+    int nattrs = 0, *attrs = NULL,  connect = 0;
+    intptr_t *attrvals = NULL;
 
     err_step = "SQLAllocHandle (SQL_HANDLE_DBC)";
     err_htype = SQL_HANDLE_ENV;
@@ -1116,10 +1117,10 @@ static apr_dbd_t *odbc_open(apr_pool_t *
         handle->default_transaction_mode = 0;
         handle->can_commit = APR_DBD_TRANSACTION_IGNORE_ERRORS;
         SQLGetInfo(hdbc, SQL_DEFAULT_TXN_ISOLATION,
-                   &(handle->default_transaction_mode), sizeof(int), NULL);
+                   &(handle->default_transaction_mode), sizeof(intptr_t), NULL);
         handle->transaction_mode = handle->default_transaction_mode;
         SQLGetInfo(hdbc, SQL_GETDATA_EXTENSIONS ,&(handle->dboptions),
-                   sizeof(int), NULL);
+                   sizeof(intptr_t), NULL);
         apr_pool_cleanup_register(pool, handle, odbc_close_cleanup, apr_pool_cleanup_null);
         return handle;
     }

Modified: projects/random_number_generator/contrib/apr-util/dbm/apr_dbm.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/dbm/apr_dbm.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/dbm/apr_dbm.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -129,8 +129,10 @@ static apr_status_t dbm_open_type(apr_db
         apr_pool_t *parent;
 
         /* Top level pool scope, need process-scope lifetime */
-        for (parent = pool;  parent; parent = apr_pool_parent_get(pool))
-             pool = parent;
+        for (parent = apr_pool_parent_get(pool);
+             parent && parent != pool;
+             parent = apr_pool_parent_get(pool))
+            pool = parent;
 
         /* deprecate in 2.0 - permit implicit initialization */
         apu_dso_init(pool);
@@ -162,7 +164,7 @@ static apr_status_t dbm_open_type(apr_db
 
 #if defined(NETWARE)
     apr_snprintf(modname, sizeof(modname), "dbm%s.nlm", type);
-#elif defined(WIN32)
+#elif defined(WIN32) || defined (__CYGWIN__)
     apr_snprintf(modname, sizeof(modname),
                  "apr_dbm_%s-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll", type);
 #else

Modified: projects/random_number_generator/contrib/apr-util/include/apr_buckets.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_buckets.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_buckets.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -351,9 +351,9 @@ typedef apr_status_t (*apr_brigade_flush
 #define APR_BRIGADE_LAST(b)	APR_RING_LAST(&(b)->list)
 
 /**
- * Insert a list of buckets at the front of a brigade
+ * Insert a single bucket at the front of a brigade
  * @param b The brigade to add to
- * @param e The first bucket in a list of buckets to insert
+ * @param e The bucket to insert
  */
 #define APR_BRIGADE_INSERT_HEAD(b, e) do {				\
 	apr_bucket *ap__b = (e);                                        \
@@ -362,9 +362,9 @@ typedef apr_status_t (*apr_brigade_flush
     } while (0)
 
 /**
- * Insert a list of buckets at the end of a brigade
+ * Insert a single bucket at the end of a brigade
  * @param b The brigade to add to
- * @param e The first bucket in a list of buckets to insert
+ * @param e The bucket to insert
  */
 #define APR_BRIGADE_INSERT_TAIL(b, e) do {				\
 	apr_bucket *ap__b = (e);					\
@@ -393,9 +393,9 @@ typedef apr_status_t (*apr_brigade_flush
     } while (0)
 
 /**
- * Insert a list of buckets before a specified bucket
+ * Insert a single bucket before a specified bucket
  * @param a The bucket to insert before
- * @param b The buckets to insert
+ * @param b The bucket to insert
  */
 #define APR_BUCKET_INSERT_BEFORE(a, b) do {				\
 	apr_bucket *ap__a = (a), *ap__b = (b);				\
@@ -404,9 +404,9 @@ typedef apr_status_t (*apr_brigade_flush
     } while (0)
 
 /**
- * Insert a list of buckets after a specified bucket
+ * Insert a single bucket after a specified bucket
  * @param a The bucket to insert after
- * @param b The buckets to insert
+ * @param b The bucket to insert
  */
 #define APR_BUCKET_INSERT_AFTER(a, b) do {				\
 	apr_bucket *ap__a = (a), *ap__b = (b);				\

Modified: projects/random_number_generator/contrib/apr-util/include/apr_dbd.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_dbd.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_dbd.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -107,10 +107,10 @@ APU_DECLARE(apr_status_t) apr_dbd_get_dr
 
 /** apr_dbd_open_ex: open a connection to a backend
  *
+ *  @param driver - driver struct.
  *  @param pool - working pool
  *  @param params - arguments to driver (implementation-dependent)
  *  @param handle - pointer to handle to return
- *  @param driver - driver struct.
  *  @param error - descriptive error.
  *  @return APR_SUCCESS for success
  *  @return APR_EGENERAL if driver exists but connection failed
@@ -147,10 +147,10 @@ APU_DECLARE(apr_status_t) apr_dbd_open_e
 
 /** apr_dbd_open: open a connection to a backend
  *
+ *  @param driver - driver struct.
  *  @param pool - working pool
  *  @param params - arguments to driver (implementation-dependent)
  *  @param handle - pointer to handle to return
- *  @param driver - driver struct.
  *  @return APR_SUCCESS for success
  *  @return APR_EGENERAL if driver exists but connection failed
  *  @see apr_dbd_open_ex
@@ -161,8 +161,8 @@ APU_DECLARE(apr_status_t) apr_dbd_open(c
 
 /** apr_dbd_close: close a connection to a backend
  *
- *  @param handle - handle to close
  *  @param driver - driver struct.
+ *  @param handle - handle to close
  *  @return APR_SUCCESS for success or error status
  */
 APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,

Modified: projects/random_number_generator/contrib/apr-util/include/apr_hooks.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_hooks.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_hooks.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -313,24 +313,24 @@ APU_DECLARE_DATA extern apr_pool_t *apr_
 
 /**
  * A global variable to determine if debugging information about the
- * hooks functions should be printed
+ * hooks functions should be printed.
  */ 
 APU_DECLARE_DATA extern int apr_hook_debug_enabled;
 
 /**
- * The name of the module that is currently registering a function
+ * The name of the module that is currently registering a function.
  */ 
 APU_DECLARE_DATA extern const char *apr_hook_debug_current;
 
 /**
- * Register a hook function to be sorted
+ * Register a hook function to be sorted.
  * @param szHookName The name of the Hook the function is registered for
  * @param aHooks The array which stores all of the functions for this hook
  */
 APU_DECLARE(void) apr_hook_sort_register(const char *szHookName, 
                                         apr_array_header_t **aHooks);
 /**
- * Sort all of the registerd functions for a given hook
+ * Sort all of the registered functions for a given hook.
  */
 APU_DECLARE(void) apr_hook_sort_all(void);
 

Modified: projects/random_number_generator/contrib/apr-util/include/apr_optional_hooks.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_optional_hooks.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_optional_hooks.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -33,11 +33,11 @@ extern "C" {
  * @{
  */
 /**
- * Function to implemnt the APR_OPTIONAL_HOOK Macro
+ * Function to implement the APR_OPTIONAL_HOOK Macro
  * @internal
  * @see APR_OPTIONAL_HOOK
  *
- * @param name The name of the hook
+ * @param szName The name of the hook
  * @param pfn A pointer to a function that will be called
  * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
  * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one

Modified: projects/random_number_generator/contrib/apr-util/include/apr_queue.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_queue.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_queue.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -22,7 +22,7 @@
  * @brief Thread Safe FIFO bounded queue
  * @note Since most implementations of the queue are backed by a condition
  * variable implementation, it isn't available on systems without threads.
- * Although condition variables are some times available without threads.
+ * Although condition variables are sometimes available without threads.
  */
 
 #include "apu.h"

Modified: projects/random_number_generator/contrib/apr-util/include/apr_reslist.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apr_reslist.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apr_reslist.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -44,7 +44,7 @@ typedef struct apr_reslist_t apr_reslist
 /* Generic constructor called by resource list when it needs to create a
  * resource.
  * @param resource opaque resource
- * @param param flags
+ * @param params flags
  * @param pool  Pool
  */
 typedef apr_status_t (*apr_reslist_constructor)(void **resource, void *params,
@@ -53,7 +53,7 @@ typedef apr_status_t (*apr_reslist_const
 /* Generic destructor called by resource list when it needs to destroy a
  * resource.
  * @param resource opaque resource
- * @param param flags
+ * @param params flags
  * @param pool  Pool
  */
 typedef apr_status_t (*apr_reslist_destructor)(void *resource, void *params,
@@ -111,12 +111,17 @@ APU_DECLARE(apr_status_t) apr_reslist_de
  * Retrieve a resource from the list, creating a new one if necessary.
  * If we have met our maximum number of resources, we will block
  * until one becomes available.
+ * @param reslist The resource list.
+ * @param resource An address where the pointer to the resource
+ *                will be stored.
  */
 APU_DECLARE(apr_status_t) apr_reslist_acquire(apr_reslist_t *reslist,
                                               void **resource);
 
 /**
  * Return a resource back to the list of available resources.
+ * @param reslist The resource list.
+ * @param resource The resource to return to the list.
  */
 APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist,
                                               void *resource);
@@ -140,6 +145,8 @@ APU_DECLARE(apr_uint32_t) apr_reslist_ac
  * Invalidate a resource in the pool - e.g. a database connection
  * that returns a "lost connection" error and can't be restored.
  * Use this instead of apr_reslist_release if the resource is bad.
+ * @param reslist The resource list.
+ * @param resource The resource to invalidate.
  */
 APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
                                                  void *resource);

Modified: projects/random_number_generator/contrib/apr-util/include/apu.hw
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apu.hw	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apu.hw	Tue Nov 26 16:13:38 2013	(r258656)
@@ -42,6 +42,12 @@
  * conventions at compile time.
  */
 
+/* Make sure we have our platform identifier macro defined we ask for later.
+ */
+#if defined(_WIN32) && !defined(WIN32)
+#define WIN32 1
+#endif
+
 #if defined(DOXYGEN) || !defined(WIN32)
 /**
  * The public APR-UTIL functions are declared with APU_DECLARE(), so they may

Modified: projects/random_number_generator/contrib/apr-util/include/apu_version.h
==============================================================================
--- projects/random_number_generator/contrib/apr-util/include/apu_version.h	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/include/apu_version.h	Tue Nov 26 16:13:38 2013	(r258656)
@@ -38,6 +38,9 @@
  */
 
 
+#define APU_COPYRIGHT "Copyright (c) 2013 The Apache Software " \
+                      "Foundation or its licensors, as applicable."
+
 /* The numeric compile-time version constants. These constants are the
  * authoritative version numbers for APU. 
  */
@@ -59,7 +62,7 @@
  * The Patch Level never includes API changes, simply bug fixes.
  * Reset to 0 when upgrading APR_MINOR_VERSION
  */
-#define APU_PATCH_VERSION       2
+#define APU_PATCH_VERSION       3
 
 /** 
  * The symbol APU_IS_DEV_VERSION is only defined for internal,
@@ -71,7 +74,9 @@
 
 #if defined(APU_IS_DEV_VERSION) || defined(DOXYGEN)
 /** Internal: string form of the "is dev" flag */
+#ifndef APU_IS_DEV_STRING
 #define APU_IS_DEV_STRING "-dev"
+#endif
 #else
 #define APU_IS_DEV_STRING ""
 #endif

Modified: projects/random_number_generator/contrib/apr-util/libaprutil.rc
==============================================================================
--- projects/random_number_generator/contrib/apr-util/libaprutil.rc	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/libaprutil.rc	Tue Nov 26 16:13:38 2013	(r258656)
@@ -1,8 +1,5 @@
 #include "apu_version.h"
 
-#define APU_COPYRIGHT "Copyright (c) 2011 The Apache Software " \
-                      "Foundation or its licensors, as applicable."
-
 #define APU_LICENSE \
   "Licensed to the Apache Software Foundation (ASF) under one or more " \
   "contributor license agreements.  See the NOTICE file distributed with " \

Modified: projects/random_number_generator/contrib/apr-util/memcache/apr_memcache.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/memcache/apr_memcache.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/memcache/apr_memcache.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -181,7 +181,7 @@ apr_memcache_find_server_hash_default(vo
 #if APR_HAS_THREADS
             apr_thread_mutex_lock(ms->lock);
 #endif
-            /* Try the the dead server, every 5 seconds */
+            /* Try the dead server, every 5 seconds */
             if (curtime - ms->btime >  apr_time_from_sec(5)) {
                 ms->btime = curtime;
                 if (mc_version_ping(ms) == APR_SUCCESS) {
@@ -289,8 +289,13 @@ static apr_status_t conn_connect(apr_mem
 {
     apr_status_t rv = APR_SUCCESS;
     apr_sockaddr_t *sa;
+#if APR_HAVE_SOCKADDR_UN
+    apr_int32_t family = conn->ms->host[0] != '/' ? APR_INET : APR_UNIX;
+#else
+    apr_int32_t family = APR_INET;
+#endif
 
-    rv = apr_sockaddr_info_get(&sa, conn->ms->host, APR_INET, conn->ms->port, 0, conn->p);
+    rv = apr_sockaddr_info_get(&sa, conn->ms->host, family, conn->ms->port, 0, conn->p);
     if (rv != APR_SUCCESS) {
         return rv;
     }
@@ -322,6 +327,11 @@ mc_conn_construct(void **conn_, void *pa
     apr_pool_t *np;
     apr_pool_t *tp;
     apr_memcache_server_t *ms = params;
+#if APR_HAVE_SOCKADDR_UN
+    apr_int32_t family = ms->host[0] != '/' ? APR_INET : APR_UNIX;
+#else
+    apr_int32_t family = APR_INET;
+#endif
 
     rv = apr_pool_create(&np, pool);
     if (rv != APR_SUCCESS) {
@@ -339,7 +349,7 @@ mc_conn_construct(void **conn_, void *pa
     conn->p = np;
     conn->tp = tp;
 
-    rv = apr_socket_create(&conn->sock, APR_INET, SOCK_STREAM, 0, np);
+    rv = apr_socket_create(&conn->sock, family, SOCK_STREAM, 0, np);
 
     if (rv != APR_SUCCESS) {
         apr_pool_destroy(np);

Modified: projects/random_number_generator/contrib/apr-util/misc/apu_dso.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/misc/apu_dso.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/misc/apu_dso.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -75,7 +75,6 @@ static apr_status_t apu_dso_term(void *p
 apr_status_t apu_dso_init(apr_pool_t *pool)
 {
     apr_status_t ret = APR_SUCCESS;
-    apr_pool_t *global;
     apr_pool_t *parent;
 
     if (apr_atomic_inc32(&initialised)) {
@@ -88,17 +87,19 @@ apr_status_t apu_dso_init(apr_pool_t *po
     }
 
     /* Top level pool scope, need process-scope lifetime */
-    for (parent = global = pool; parent; parent = apr_pool_parent_get(global))
-        global = parent;
+    for (parent = apr_pool_parent_get(pool);
+         parent && parent != pool;
+         parent = apr_pool_parent_get(pool))
+        pool = parent;
 
-    dsos = apr_hash_make(global);
+    dsos = apr_hash_make(pool);
 
 #if APR_HAS_THREADS
-    ret = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_DEFAULT, global);
+    ret = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_DEFAULT, pool);
     /* This already registers a pool cleanup */
 #endif
 
-    apr_pool_cleanup_register(global, NULL, apu_dso_term,
+    apr_pool_cleanup_register(pool, NULL, apu_dso_term,
                               apr_pool_cleanup_null);
 
     apr_atomic_dec32(&in_init);

Modified: projects/random_number_generator/contrib/apr-util/test/abts.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/test/abts.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/test/abts.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -106,6 +106,9 @@ abts_suite *abts_add_suite(abts_suite *s
     /* suite_name_full may be an absolute path depending on __FILE__ 
      * expansion */
     suite_name = strrchr(suite_name_full, '/');
+    if (!suite_name) {
+        suite_name = strrchr(suite_name_full, '\\');
+    }
     if (suite_name) {
         suite_name++;
     } else {
@@ -247,7 +250,8 @@ void abts_int_nequal(abts_case *tc, cons
 
     tc->failed = TRUE;
     if (verbose) {
-        fprintf(stderr, "Line %d: expected <%d>, but saw <%d>\n", lineno, expected, actual);
+        fprintf(stderr, "Line %d: expected something other than <%d>, but saw <%d>\n",
+                lineno, expected, actual);
         fflush(stderr);
     }
 }
@@ -279,7 +283,8 @@ void abts_str_nequal(abts_case *tc, cons
 
     tc->failed = TRUE;
     if (verbose) {
-        fprintf(stderr, "Line %d: expected <%s>, but saw <%s>\n", lineno, expected, actual);
+        fprintf(stderr, "Line %d: expected something other than <%s>, but saw <%s>\n",
+                lineno, expected, actual);
         fflush(stderr);
     }
 }

Modified: projects/random_number_generator/contrib/apr-util/test/testpass.c
==============================================================================
--- projects/random_number_generator/contrib/apr-util/test/testpass.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/apr-util/test/testpass.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 

Modified: projects/random_number_generator/contrib/gcc/ChangeLog.gcc43
==============================================================================
--- projects/random_number_generator/contrib/gcc/ChangeLog.gcc43	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/gcc/ChangeLog.gcc43	Tue Nov 26 16:13:38 2013	(r258656)
@@ -31,6 +31,12 @@
 	regs_invalidated_by_call, rather than just checking the
 	membership of REGNO (REG).
 
+2007-05-16  Eric Christopher  <echristo at apple.com> (r124763)
+
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
+        saving after stack push. Set sp_offset whenever we push.
+        (rs6000_emit_epilogue): Move altivec register restore before stack push.
+
 2007-05-03  Ian Lance Taylor  <iant at google.com> (r124381)
 
 	* config/rs6000/rs6000.c (rs6000_override_options): Don't set

Modified: projects/random_number_generator/contrib/gcc/config/rs6000/rs6000.c
==============================================================================
--- projects/random_number_generator/contrib/gcc/config/rs6000/rs6000.c	Tue Nov 26 16:12:40 2013	(r258655)
+++ projects/random_number_generator/contrib/gcc/config/rs6000/rs6000.c	Tue Nov 26 16:13:38 2013	(r258656)
@@ -14466,77 +14466,6 @@ rs6000_emit_prologue (void)
       sp_offset = info->total_size;
     }
 
-  /* Save AltiVec registers if needed.  */
-  if (!WORLD_SAVE_P (info) && TARGET_ALTIVEC_ABI && info->altivec_size != 0)
-    {
-      int i;
-
-      /* There should be a non inline version of this, for when we
-	 are saving lots of vector registers.  */

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list