From owner-svn-src-projects@FreeBSD.ORG Tue Nov 26 16:13:44 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0D96339D; Tue, 26 Nov 2013 16:13:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EE8DB2A1E; Tue, 26 Nov 2013 16:13:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rAQGDhmJ038158; Tue, 26 Nov 2013 16:13:43 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id rAQGDcPQ038123; Tue, 26 Nov 2013 16:13:38 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201311261613.rAQGDcPQ038123@svn.freebsd.org> From: Mark Murray Date: Tue, 26 Nov 2013 16:13:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Nov 2013 16:13:44 -0000 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 #include #include +#include #include #include #include @@ -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 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 ] + + *) 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 ] + + *) 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 #include #include 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 (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 (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 ***