summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-12-21 00:44:03 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-12-21 00:44:03 +0000
commit2d83a98b31e556cbbc0d0170dbd0f74812f1a6d6 (patch)
treeb98602cbe4f78f261ffc7f7aaae1842c109d2979
parent2a103fa369f7ba33a0f4531e92f14a33d1c98b93 (diff)
downloadATCD-2d83a98b31e556cbbc0d0170dbd0f74812f1a6d6.tar.gz
Merged trunk changes r79939:80324 into branch TAO_Sequence_Iterators
-rw-r--r--ACE/ACE-INSTALL.html2
-rw-r--r--ACE/ACE-install.sh356
-rw-r--r--ACE/ACEXML/common/AttributesImpl.h24
-rw-r--r--ACE/ASNMP/asnmp/wpdu.cpp3
-rw-r--r--ACE/ChangeLog1177
-rw-r--r--ACE/NEWS64
-rw-r--r--ACE/PROBLEM-REPORT-FORM2
-rw-r--r--ACE/THANKS10
-rw-r--r--ACE/VERSION2
-rw-r--r--ACE/ace/ARGV.h1
-rw-r--r--ACE/ace/Asynch_IO.h3
-rw-r--r--ACE/ace/CDR_Base.h12
-rw-r--r--ACE/ace/CDR_Base.inl23
-rw-r--r--ACE/ace/CDR_Stream.cpp69
-rw-r--r--ACE/ace/CDR_Stream.h72
-rw-r--r--ACE/ace/Codecs.cpp15
-rw-r--r--ACE/ace/Codecs.h4
-rw-r--r--ACE/ace/Codeset_Registry_db.cpp5
-rw-r--r--ACE/ace/DLL_Manager.h20
-rw-r--r--ACE/ace/Dynamic_Service_Base.cpp20
-rw-r--r--ACE/ace/Dynamic_Service_Base.h11
-rw-r--r--ACE/ace/Get_Opt.cpp2
-rw-r--r--ACE/ace/INET_Addr.cpp4
-rw-r--r--ACE/ace/Log_Msg.cpp12
-rw-r--r--ACE/ace/Log_Msg.h16
-rw-r--r--ACE/ace/Log_Msg.inl10
-rw-r--r--ACE/ace/OS_NS_Thread.cpp365
-rw-r--r--ACE/ace/OS_NS_Thread.h34
-rw-r--r--ACE/ace/OS_NS_Thread.inl310
-rw-r--r--ACE/ace/OS_NS_arpa_inet.cpp2
-rw-r--r--ACE/ace/OS_NS_dlfcn.inl8
-rw-r--r--ACE/ace/OS_NS_netdb.cpp4
-rw-r--r--ACE/ace/OS_NS_netdb.inl2
-rw-r--r--ACE/ace/OS_NS_pwd.inl4
-rw-r--r--ACE/ace/OS_NS_signal.inl6
-rw-r--r--ACE/ace/OS_NS_stdio.inl103
-rw-r--r--ACE/ace/OS_NS_stdlib.cpp2
-rw-r--r--ACE/ace/OS_NS_string.cpp4
-rw-r--r--ACE/ace/OS_NS_sys_socket.inl4
-rw-r--r--ACE/ace/OS_NS_sys_utsname.cpp4
-rw-r--r--ACE/ace/OS_NS_time.inl8
-rw-r--r--ACE/ace/OS_NS_unistd.inl2
-rw-r--r--ACE/ace/OS_main.h20
-rw-r--r--ACE/ace/Object_Manager.cpp38
-rw-r--r--ACE/ace/Object_Manager.h6
-rw-r--r--ACE/ace/Pipe.cpp27
-rw-r--r--ACE/ace/Pipe.h4
-rw-r--r--ACE/ace/Process_Manager.cpp81
-rw-r--r--ACE/ace/QoS/qos.mpc2
-rw-r--r--ACE/ace/README7
-rw-r--r--ACE/ace/Reactor.h21
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Refcounted_Auto_Ptr.h10
-rw-r--r--ACE/ace/Refcounted_Auto_Ptr.inl12
-rw-r--r--ACE/ace/SOCK_Dgram_Mcast.cpp82
-rw-r--r--ACE/ace/SOCK_Dgram_Mcast.h40
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Stream.cpp25
-rw-r--r--ACE/ace/SSL/SSL_SOCK_Stream.inl8
-rw-r--r--ACE/ace/Sched_Params.cpp32
-rw-r--r--ACE/ace/Select_Reactor_Base.cpp19
-rw-r--r--ACE/ace/Select_Reactor_Base.inl4
-rw-r--r--ACE/ace/Select_Reactor_T.cpp19
-rw-r--r--ACE/ace/Service_Config.cpp20
-rw-r--r--ACE/ace/Service_Config.inl20
-rw-r--r--ACE/ace/Svc_Conf.h7
-rw-r--r--ACE/ace/Svc_Conf.y8
-rw-r--r--ACE/ace/Svc_Conf_y.cpp10
-rw-r--r--ACE/ace/TP_Reactor.cpp46
-rw-r--r--ACE/ace/Task.cpp18
-rw-r--r--ACE/ace/Task.h3
-rw-r--r--ACE/ace/Thread.cpp16
-rw-r--r--ACE/ace/Thread.h15
-rw-r--r--ACE/ace/Thread.inl6
-rw-r--r--ACE/ace/Thread_Manager.cpp86
-rw-r--r--ACE/ace/Thread_Manager.h73
-rw-r--r--ACE/ace/Timer_Queue_Adapters.cpp5
-rw-r--r--ACE/ace/Timer_Queue_Adapters.h3
-rw-r--r--ACE/ace/Token.cpp64
-rw-r--r--ACE/ace/Token.h2
-rw-r--r--ACE/ace/Truncate.h6
-rw-r--r--ACE/ace/Vector_T.cpp55
-rw-r--r--ACE/ace/Vector_T.inl19
-rw-r--r--ACE/ace/Version.h4
-rw-r--r--ACE/ace/WFMO_Reactor.h7
-rw-r--r--ACE/ace/ace_for_tao.mpc2
-rw-r--r--ACE/ace/config-aix-5.x.h15
-rw-r--r--ACE/ace/config-cray.h16
-rw-r--r--ACE/ace/config-cygwin32.h2
-rw-r--r--ACE/ace/config-hpux-11.00.h2
-rw-r--r--ACE/ace/config-integritySCA.h1
-rw-r--r--ACE/ace/config-irix6.x-common.h1
-rw-r--r--ACE/ace/config-linux-common.h16
-rw-r--r--ACE/ace/config-linux.h2
-rw-r--r--ACE/ace/config-macosx-leopard.h1
-rw-r--r--ACE/ace/config-macosx-panther.h1
-rw-r--r--ACE/ace/config-macosx-tiger.h1
-rw-r--r--ACE/ace/config-macosx.h1
-rw-r--r--ACE/ace/config-mvs.h1
-rw-r--r--ACE/ace/config-netbsd.h1
-rw-r--r--ACE/ace/config-openvms.h4
-rw-r--r--ACE/ace/config-posix.h4
-rw-r--r--ACE/ace/config-qnx-neutrino.h1
-rw-r--r--ACE/ace/config-qnx-rtp-62x.h1
-rw-r--r--ACE/ace/config-qnx-rtp-pre62x.h1
-rw-r--r--ACE/ace/config-rtems.h1
-rw-r--r--ACE/ace/config-sunos5.5.h4
-rw-r--r--ACE/ace/config-tandem-nsk-mips-v2.h13
-rw-r--r--ACE/ace/config-tandem-nsk-mips-v3.h41
-rw-r--r--ACE/ace/config-tru64.h44
-rw-r--r--ACE/ace/config-unixware-7.1.0.h3
-rw-r--r--ACE/ace/config-unixware-7.1.0.udk.h3
-rw-r--r--ACE/ace/config-vxworks5.x.h5
-rw-r--r--ACE/ace/config-vxworks6.2.h10
-rw-r--r--ACE/ace/config-vxworks6.3.h10
-rw-r--r--ACE/ace/config-vxworks6.4.h10
-rw-r--r--ACE/ace/config-vxworks6.6.h339
-rw-r--r--ACE/ace/config-win32-interix.h1
-rw-r--r--ACE/ace/config-win32-msvc-9.h3
-rw-r--r--ACE/ace/os_include/os_limits.h2
-rw-r--r--ACE/ace/os_include/os_pthread.h37
-rw-r--r--ACE/ace/os_include/os_time.h4
-rw-r--r--ACE/ace/os_include/sys/os_msg.h9
-rw-r--r--ACE/ace/os_include/sys/os_socket.h4
-rw-r--r--ACE/ace/os_include/sys/os_types.h5
-rw-r--r--ACE/apps/JAWS/ChangeLog6
-rw-r--r--ACE/apps/JAWS/server/HTTP_Helpers.cpp12
-rw-r--r--ACE/apps/gperf/gperf.mpc2
-rw-r--r--ACE/apps/gperf/tests/test.cpp2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fl.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gl.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_x11.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/acedefaults.mpb4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ipv6.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc9.features7
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc9nmake.mpb11
-rw-r--r--ACE/bin/MakeProjectCreator/config/vc_warnings.mpb (renamed from ACE/bin/MakeProjectCreator/config/vc8_warnings.mpb)16
-rw-r--r--ACE/bin/MakeProjectCreator/docs/templates/gnu.txt1
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnu.mpd4
-rw-r--r--ACE/bin/PerlACE/ConfigList.pm14
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Unix.pm49
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Win32.pm53
-rw-r--r--ACE/bin/PerlACE/perlace.mpc1
-rwxr-xr-xACE/bin/fuzz.pl87
-rwxr-xr-xACE/bin/make_release.py10
-rwxr-xr-xACE/bin/msvc_mpc_auto_compile.pl4
-rwxr-xr-xACE/bin/msvc_static_compile.pl5
-rw-r--r--ACE/bin/tao_orb_tests.lst69
-rw-r--r--ACE/bin/tao_other_tests.lst2
-rw-r--r--ACE/configure.ac90
-rw-r--r--ACE/contrib/minizip/minizip.mpc2
-rw-r--r--ACE/docs/ACE-bug-process.html11
-rw-r--r--ACE/docs/ACE-development-process.html22
-rw-r--r--ACE/docs/Download.html86
-rw-r--r--ACE/docs/bczar/bczar.html9
-rw-r--r--ACE/etc/index.html1
-rw-r--r--ACE/examples/APG/Reactor/HAStatus-AC.cpp4
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-connector.cpp4
-rw-r--r--ACE/examples/Reactor/Multicast/Log_Wrapper.cpp4
-rw-r--r--ACE/examples/Reactor/Multicast/server.cpp4
-rw-r--r--ACE/examples/Reactor/Ntalker/ntalker.cpp28
-rw-r--r--ACE/examples/Service_Configurator/Misc/Timer_Service.cpp4
-rw-r--r--ACE/examples/Service_Configurator/Misc/main.cpp4
-rw-r--r--ACE/include/makeinclude/platform_aix_ibm.GNU112
-rw-r--r--ACE/include/makeinclude/platform_g++_common.GNU16
-rw-r--r--ACE/include/makeinclude/platform_linux.GNU30
-rw-r--r--ACE/include/makeinclude/platform_linux_common.GNU7
-rw-r--r--ACE/include/makeinclude/platform_linux_icc.GNU3
-rw-r--r--ACE/include/makeinclude/platform_vxworks5.5.x.GNU1
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.2.GNU2
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.3.GNU15
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.6.GNU8
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU4
-rw-r--r--ACE/m4/ace_defines.m448
-rw-r--r--ACE/m4/config_h.m431
-rw-r--r--ACE/m4/platform.m468
-rw-r--r--ACE/netsvcs/lib/Name_Handler.cpp65
-rw-r--r--ACE/netsvcs/lib/Name_Handler.h28
-rw-r--r--ACE/tests/CDR_Test.cpp102
-rw-r--r--ACE/tests/Conn_Test.cpp8
-rw-r--r--ACE/tests/Max_Default_Port_Test.cpp14
-rw-r--r--ACE/tests/Process_Manager_Test.cpp98
-rw-r--r--ACE/tests/Reactor_Notify_Test.cpp95
-rw-r--r--ACE/tests/Refcounted_Auto_Ptr_Test.cpp64
-rw-r--r--ACE/tests/TSS_Test.cpp41
-rw-r--r--ACE/tests/Thread_Manager_Test.cpp8
-rw-r--r--ACE/tests/Vector_Test.cpp42
-rw-r--r--ACE/tests/run_test.lst2
188 files changed, 3674 insertions, 2259 deletions
diff --git a/ACE/ACE-INSTALL.html b/ACE/ACE-INSTALL.html
index 7eb5800749f..e298fe5a0a9 100644
--- a/ACE/ACE-INSTALL.html
+++ b/ACE/ACE-INSTALL.html
@@ -155,7 +155,7 @@ document</a>.</p><p>
<td>Maintains ACE on many platforms required for their ACE and
TAO service offerings. We support AIX, Borland C++ Builder 6/2006,
CodeGear C++ Builder 2007, CodeGear RAD Studio 2007,
- CBuilderX 1.0, MinGW, Microsoft Visual C++, GCC,
+ CBuilderX 1.0, MinGW, Microsoft Visual C++ 7.1/8/9, GCC,
Cygwin, VxWorks 5.5.x & 6.x, OpenVMS 8.2-1 & 8.3 on Alpha and IA64,
BlueCAT Linux, RedHat Linux, Fedora,
Tru64, SuSE Linux on Alpha/IA32/EM64T/IA64, RTEMS, QNX, LynxOS 4.0/4.2,
diff --git a/ACE/ACE-install.sh b/ACE/ACE-install.sh
deleted file mode 100644
index 76c1e8064f7..00000000000
--- a/ACE/ACE-install.sh
+++ /dev/null
@@ -1,356 +0,0 @@
-#!/bin/sh
-########################## Begin Install Script ##########################
-#
-# NAME: ACE-install.sh
-#
-# PURPOSE: Bourne shell script to install ACE for UNIX platforms
-#
-# AUTHOR: Ajit Sagar <asagar@spdmail.spd.dsccc.com>
-#
-# HISTORY: 5/20/96 Ajit Sagar Created
-# x/xx/xx xxxxxxxxxxxxxx Modified
-# x/xx/xx xxxxxxxxxxxxxx Modified
-#
-# DESCRIPTION: This script installs the ACE toolkit for a Unix system.
-# Before using this script, you must do the following:
-#
-# NOTES: 1) Download the gzipped version of ACE from
-# http://www.cs.wustl.edu/~schmidt/ (Select "Obtaining ACE")
-# OR
-# ftp from wuarchive.wustl.edu in the /languages/c++/ACE directory
-#
-# The local directory to which this will be downloaded is
-# refered to as the "MY_ACEDIR" in this script.
-#
-# 2) Make sure there is only one file that matches "ACE*tar*".
-# This should be the one you just downloaded.
-# remove older versions of tar files downloaded earlier.
-#
-# 3) At the end of this script, you should have:
-#
-# a) A compiled toolkit in the $ACE_ROOT directory
-# b) If you selected to save the existing installation,
-# a file oldACE.tar.gz will be created in MY_ACEDIR
-# c) The gzipped ACE source file that was initially downloaded.
-#
-# 4) This script may be executed without user interaction
-# by using the "auto" option (see USAGE section below).
-# It is advisable to execute it without the "auto" option the
-# first time to make sure everything works.
-#
-# THE FOLLOWING NEED TO BE DONE ONLY THE FIRST TIME THIS
-# SCRIPT IS RUN:
-#
-# 5) Read the README file in
-# http://www.cs.wustl.edu/~schmidt/ACE.html directory
-#
-# 6) Define an environment variable ACE_ROOT the
-# defines which directory your ACE toolkit is to be
-# installed in.
-#
-# DO NOT MAKE "ACE_ROOT" THE SAME AS "MY_ACEDIR".
-#
-# 7) Redefine "MY_ACEDIR" in this script to default
-# to the directory in which you have downloaded the ACE source.
-#
-# 8) This script has been tested on Solaris 2.x for the
-# Sun C++4.0 compiler. To use this on some other UNIX
-# platform, uncomment and redefine the following
-# in this script:
-#
-# MY_ACE_CONFIG
-# MY_ACE_GNU_MACROS
-#
-# Check the README file to define these variables. If
-# these are not defined, the script will prompt you
-# help you to change these variables. But in that case
-# you cannot run with the "auto" option.
-#
-#
-# USAGE: myacemaker [ auto ]
-#
-# auto automatic make (no user interaction)
-#
-# Under this option, the source will be
-# extracted and compiled without any user interaction,
-# i.e., you can kick off this script, go home,
-# and check it in the morning. The following
-# assumptions are made:
-#
-# 1) MY_ACE_DIR is properly defined in this script.
-# 2) MY_ACE_CONFIG is properlly defined
-# in this script.
-# 3) MY_ACE_GNU_MACROS is properly defined in this
-# script.
-# 4) A backup of existing installation
-# is to be made.
-#
-# COPYRIGHT INFORMATION:
-#
-# You are free to do anything you like with this script such as
-# including it in commercial software. You may modify it and freely redistribute
-# it. The author accepts no responsibility for any bugs or problems that
-# arise as a consequence of using this code.
-#
-# -- Ajit Sagar
-#
-#########################################################################
-#
-ACE_ERRFILE=/tmp/myacemaker.err
-OLD_ACE_TAR_FILE=oldACE.tar
-OLD_ACE_GZIPPED_TAR_FILE=oldACE.tar.gz
-USAGE="<Usage> : myacemaker [ auto ]"
-#
-##############################################################
-#
-# Platform-specific definitions
-#
-##############################################################
-
-# Directory where ACE-x.x.xx.tar.gz is located
-
-MY_ACEDIR=${HOME}/aceconfig
-
-#######################################################
-# Platform specific config file in ${ACE_ROOT}/ace/
-# Uncomment and redefine this
-#######################################################
-
-# MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h
-
-#######################################################
-# Platform specific GNU macros file in
-# ${ACE_ROOT}/include/makeinclude/
-# Uncomment and redefine this
-#######################################################
-
-# MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU
-
-
-##############################################################
-#
-# Main Script For Installing ACE
-#
-##############################################################
-
-AUTO="$#"
-
-ACE_ROOT=${ACE_ROOT:?"ERROR: Environment variable ACE_ROOT not set"}
-if [ ${AUTO} -gt 1 ]
-then
- echo "$USAGE"
- exit 1
-fi
-
-if [ ${AUTO} -eq 1 ]
-then
- if [ $1 != "auto" ]
- then
- if [ $1 = "nounzip" ] ; then
- UNZIP=0
- AUTO=0
- else
- echo "$USAGE"
- exit 2
- fi
- fi
-fi
-
-echo ""
-echo "ACE source in `ls ${MY_ACEDIR}/ACE*tar.gz`"
-echo "ACE will be installed in ${ACE_ROOT}"
-echo ""
-
-if [ $AUTO -eq 0 ]
-then
- echo "OK to continue? [Y/N] : \c"
- read choice
-else
- choice='Y'
-fi
-
-if [ ${choice} != 'Y' -a ${choice} != 'y' ]
-then
- echo ""
- echo "ACE installation aborted"
- echo ""
- exit 11
-fi
-
-cd ${MY_ACEDIR}
-
-echo "Uncomressing ACE archive and extracting ACE files"
-echo "into `pwd`/ACE_wrappers directory ..."
-echo ""
-
-gunzip -c ACE*tar.gz | tar xvf - || \
-{
- echo ""
- echo "gunzip or tar failed. Aborting script !!"
- echo ""
- exit 33
-}
-
-if [ -d ${ACE_ROOT} ]
-then
-
- if [ $AUTO -eq 0 ]
- then
- echo "Save a copy of existing ACE installation? [Y/N] : \c"
- read choice
- echo ""
- else
- choice='Y'
- fi
-
- if [ ${choice} = 'Y' -o ${choice} = 'y' ]
- then
-
- echo "Archiving ${ACE_ROOT} to `pwd`/${OLD_ACE_TAR_FILE} using <tar> ..."
- tar cvpf ${OLD_ACE_TAR_FILE} ${ACE_ROOT}
- echo ""
-
- if [ -f ${OLD_ACE_GZIPPED_TAR_FILE} ]
- then
- echo "Removing ${OLD_ACE_GZIPPED_TAR_FILE} ..."
- rm ${OLD_ACE_GZIPPED_TAR_FILE}
- echo ""
- fi
-
- echo "Compressing ${OLD_ACE_TAR_FILE} using <gzip -9> ..."
- gzip -9 ${OLD_ACE_TAR_FILE}
- echo ""
-
- fi
-
- echo "Removing ${ACE_ROOT} ..."
- rm -r ${ACE_ROOT}
- echo ""
-fi
-
-echo "Moving `pwd`/ACE_wrappers to ${ACE_ROOT} ..."
-mv ./ACE_wrappers ${ACE_ROOT}
-echo ""
-
-cd ${ACE_ROOT}/ace
-
-if [ ${MY_ACE_CONFIG:-undefined} = undefined ]
-then
-
- if [ $AUTO -eq 1 ]
- then
- if [ ! -f ${MY_ACE_CONFIG} ]
- then
- echo ""
- echo "${MY_ACE_CONFIG} does not exist. Aborting script ..."
- echo ""
- exit 44
- fi
- fi
-
- echo "Select one of the following files for linking to config.h"
- echo ""
- echo "`ls config*h`"
- echo ""
-
- echo "Type the filename for your compiler: \c"
- read MY_ACE_CONFIG
- echo ""
-
- if [ ! -f ${MY_ACE_CONFIG} ]
- then
- echo ""
- echo "${MY_ACE_CONFIG} does not exist. Aborting script ..."
- echo ""
- exit 55
- fi
-
-fi
-
-
-echo "Creating link config.h for ${MY_ACE_CONFIG} in directory `pwd` ..."
-
-rm ./config.h
-ln -s ${MY_ACE_CONFIG} config.h
-
-echo ""
-
-cd ${ACE_ROOT}/include/makeinclude
-
-if [ ${MY_ACE_GNU_MACROS:-undefined} = undefined ]
-then
-
- if [ $AUTO -eq 1 ]
- then
- if [ ! -f ${MY_ACE_GNU_MACROS} ]
- then
- echo ""
- echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..."
- echo ""
- exit 66
- fi
- fi
-
- echo "Select one of the following files for linking to config.h"
- echo ""
- echo "`ls platform*GNU`"
- echo ""
- echo "Type the filename for your compiler: \c"
-
- read MY_ACE_GNU_MACROS
- echo ""
-
- if [ ! -f ${MY_ACE_GNU_MACROS} ]
- then
- echo ""
- echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..."
- echo ""
- exit 77
- fi
-
-fi
-
-echo "Creating link platform_macros.GNU for ${MY_ACE_GNU_MACROS}"
-echo "in directory `pwd` ..."
-
-rm ./platform_macros.GNU
-ln -s ${MY_ACE_GNU_MACROS} platform_macros.GNU
-
-echo ""
-
-if [ ${AUTO} -eq 0 ]
-then
- echo "Make ACE now with default setup? [Y/N] : \c"
- read choice
- echo ""
-else
- choice='Y'
-fi
-
-if [ ${choice} != 'Y' -a ${choice} != 'y' ]
-then
- echo ""
- echo "ACE make skipped. You can use <gmake> to make ACE later"
- echo ""
- exit 0
-fi
-
-echo ""
-echo "Making ACE now. Examine file ${ACE_ERRFILE} for errors ..."
-echo ""
-
-cd ${ACE_ROOT}
-
-echo ""
-echo "Executing <gmake> ..."
-echo ""
-gmake | tee ${ACE_ERRFILE} 2>&1
-
-echo ""
-echo "Examine file ${ACE_ERRFILE} for possible errors ..."
-echo ""
-echo "********** End of myacemaker script !!! ***********"
-echo ""
-
-#
-#########################################################################
diff --git a/ACE/ACEXML/common/AttributesImpl.h b/ACE/ACEXML/common/AttributesImpl.h
index f6ee26e7785..39b7f33099b 100644
--- a/ACE/ACEXML/common/AttributesImpl.h
+++ b/ACE/ACEXML/common/AttributesImpl.h
@@ -145,7 +145,7 @@ class ACEXML_Export ACEXML_AttributesImpl
{
public:
/**
- * Initialize an AttributesImpl that holds <size> attributes.
+ * Initialize an AttributesImpl that holds @a size attributes.
*/
ACEXML_AttributesImpl (int size = ACEXML_AttributesImpl_Default_Size);
ACEXML_AttributesImpl (const ACEXML_AttributesImpl &attrs);
@@ -170,7 +170,7 @@ public:
const ACEXML_Char *qName);
/**
* Remove an attribute from the array. Notice that this
- * operation can invalidate previously acquired <index>
+ * operation can invalidate previously acquired @a index
* value. (It will repack the array.)
*/
virtual int removeAttribute (size_t index);
@@ -262,36 +262,36 @@ public:
const ACEXML_Char *value);
/**
- * Set the localName of the attribute at <index>.
- * return -1 if <index> is out of range.
+ * Set the localName of the attribute at @a index.
+ * return -1 if @a index is out of range.
*/
virtual int setLocalName (size_t index,
const ACEXML_Char *localName);
/**
- * Set the qName of the attribute at <index>.
- * return -1 if <index> is out of range.
+ * Set the qName of the attribute at @a index.
+ * return -1 if @a index is out of range.
*/
virtual int setQName (size_t index,
const ACEXML_Char *qName);
/**
- * Set the URI of the attribute at <index>.
- * return -1 if <index> is out of range.
+ * Set the URI of the attribute at @a index.
+ * return -1 if @a index is out of range.
*/
virtual int setURI (size_t index,
const ACEXML_Char *uri);
/**
- * Set the type of the attribute at <index>.
- * return -1 if <index> is out of range.
+ * Set the type of the attribute at @a index.
+ * return -1 if @a index is out of range.
*/
virtual int setType (size_t index,
const ACEXML_Char *type);
/**
- * Set the value of the attribute at <index>.
- * return -1 if <index> is out of range.
+ * Set the value of the attribute at @a index.
+ * return -1 if @a index is out of range.
*/
virtual int setValue (size_t index,
const ACEXML_Char *value);
diff --git a/ACE/ASNMP/asnmp/wpdu.cpp b/ACE/ASNMP/asnmp/wpdu.cpp
index f6c14e6aac9..e99ab66821e 100644
--- a/ACE/ASNMP/asnmp/wpdu.cpp
+++ b/ACE/ASNMP/asnmp/wpdu.cpp
@@ -102,7 +102,8 @@ wpdu::wpdu(const Pdu& pdu, const UdpTarget& target):
(unsigned char *)iovec_.iov_base,
(int *) &iovec_.iov_len,
target.get_version(),
- comm_str.data(), comm_str.length());
+ comm_str.data(),
+ comm_str.length());
if ( status != 0) {
valid_flag_ = SNMP_ERROR_WRONG_ENCODING;
cmu_snmp::free_pdu( raw_pdu);
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index de31fb4d085..e92b5047c8d 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,3 +1,1176 @@
+Thu Dec 20 20:01:07 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/Codecs.h:
+ * ace/Codes.cpp:
+
+ Fixed fuzz warnings.
+
+Tue Dec 18 17:56:30 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * docs/ACE-development-process.html,
+ * docs/ACE-bug-process.html: Updated these documents to clarify
+ that submitters of code, bug fixes, etc. waive claims to
+ copyright or ownership of the submissions. Thanks to Tom
+ Callaway <tcallawa at redhat dot com> for help with this.
+
+Thu Dec 20 15:39:43 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/Codecs.h:
+ * ace/Codecs.cpp:
+
+ Add is_chunked argument to encode() which selects whether the
+ encoded output is "chunked" into newline terminated 72 column
+ chunks. Fixed bug where "chunked" output was not terminated by
+ a newline if the input buffer length was an exact multiple of 3.
+ Thanks to Alick Nie <alick_nie at 163 dot com> for reporting
+ inconsistant encoding behavior which lead to this change.
+
+ * THANKS:
+
+ Add Alick Nie <alick_nie at 163 dot com>.
+
+Thu Dec 20 14:00:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sched_Params.cpp:
+ Use VX_TASK_PRIORITY_MAX and VX_TASK_PRIORITY_MIN when they
+ are defined
+
+Thu Dec 20 13:46:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ Layout change
+
+ * ace/OS_NS_Thread.inl:
+ Fixed warning with VxWorks 6.6 which uses GCC 4.1.2
+
+Thu Dec 20 13:46:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_dlfcn.inl:
+ Fixed warning with VxWorks 6.6 which uses GCC 4.1.2
+
+Thu Dec 20 13:34:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Fixed warning with VxWorks 6.6 which uses GCC 4.1.2
+
+Thu Dec 20 13:04:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_aix_ibm.GNU:
+ Fixed typo in this file
+
+Thu Dec 20 10:30:00 UTC 2007 Simon Massey <simon.massey@prismtech.com>
+
+ * bin/tao_orb_tests.lst:
+
+ Exclude TAO/tests/CSD_Collocation from LynxOS builds. They
+ overload/tax the LynxOS kernal resulting in random process
+ table corruption and filing system errors.
+
+Wed Dec 19 14:04:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_aix_ibm.GNU:
+ * ace/config-aix-5.x.h:
+ Deprecated Visual Age 5 and older
+
+Tue Dec 18 14:40:11 UTC 2007 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+
+ Exclude TAO/tests/CSD_Collocation from minimum CORBA builds.
+
+Tue Dec 18 10:47:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Added Bug 3171 Regression
+
+Mon Dec 17 16:41:44 UTC 2007 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+
+ Added TAO/tests/CSD_Collocation.
+
+Mon Dec 17 12:35:00 UTC 2007 Simon Massey <simon.massey@prismtech.com>
+
+ * bin/tao_other_tests.lst:
+ added TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/run_test.pl
+ for bugzilla 3174.
+
+Mon Dec 17 10:00:12 UTC 2007 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Pipe.cpp:
+ Implemented fix for delays on OpenVMS when using socketpair() for Pipe.
+
+Sun Dec 16 19:26:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Refcounted_Auto_Ptr.h:
+ * ace/Refcounted_Auto_Ptr.inl:
+ Extended this template, thanks to Hu Yi <huyi dot zg at gmail dot com>
+ for extending this template
+
+ * tests/Refcounted_Auto_Ptr_Test.cpp:
+ Extended
+
+ * tests/TSS_Test.cpp:
+ Removed pthread draft 4 code and fixed compile warnings with VxWorks 6.6
+
+ * ace/Pipe.cpp:
+ Const changes
+
+Sun Dec 16 07:03:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACEXML/common/AttributesImpl.h:
+ Doxygen improvements
+
+Sun Dec 16 06:49:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-sunos5.5.h:
+ Added ACE_HAS_SOCK_BUF_SIZE_MAX, thanks to Adam Mitz for pointing
+ out this is needed for Solaris
+
+ * ace/OS_NS_Thread.cpp:
+ Const changes
+
+ * ace/OS_NS_Thread.inl:
+ Simplified ifdef checks in multiple methods
+
+ * ace/Select_Reactor_Base.cpp:
+ Layout change
+
+ * ace/Select_Reactor_Base.inl:
+ Change for msvc9
+
+ * ace/Select_Reactor_T.cpp:
+ No need to check for 0 after ACE_NEW_RETURN
+
+ * ace/Svc_Conf.y:
+ * ace/Svc_Conf_y.cpp:
+ Changed DEBUGGING to SVC_CONF_Y_DEBUGGING and also fixed
+ the compile problems that exist in the code guarded by
+ this define
+
+Sat Dec 15 15:02:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/gperf.mpc:
+ * bin/PerlACE/perlace.mpc:
+ Use custom_only=1 for these MPC files
+
+Sat Dec 15 14:57:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Object_Manager.cpp:
+ Disable the critical error boxes when ACE_DISABLE_WIN32_ERROR_WINDOWS
+ is defined. This fixes bugzilla 3170. Thanks to Adrian Tulloch
+ <my-ace-sub at reyes-tulloch dot com> for suggesting this
+
+ * ace/Svc_Conf.h:
+ Fixed compile error when DEBUGGING is defined
+
+ * ace/Token.cpp:
+ Renamed DEBUGGING to ACE_TOKEN_DEBUGGING, DEBUGGING is used on
+ more places like as a member in an enum. Also const, bool changes.
+
+ * ace/TP_Reactor.cpp:
+ Layout and const changes
+
+Sat Dec 15 14:36:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/bzcar/bczar.html:
+ Updated location of this page and improved bczar instructions
+
+Fri Dec 14 13:21:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/index.html:
+ * docs/Download.html:
+ Updated for x.6.2
+
+Fri Dec 14 02:48:57 CST 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ACE version 5.6.2 released.
+
+Thu Dec 13 16:19:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/sys/os_socket.h:
+ Set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to SSIZE_MAX when it is not
+ set yet
+
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ No need to set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE anymore
+
+ * ace/Pipe.h:
+ Doxygen changes
+
+Wed Dec 12 13:15:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_socket.inl:
+ When ACE_HAS_SOCK_BUF_SIZE_MAX is defined, don't use
+ SSIZE_MAX but ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE as value
+ to check. That way we can limit the size of the packets
+ on OpenVMS.
+
+ * ace/config-openvms.h:
+ Added ACE_HAS_SOCK_BUF_SIZE_MAX and set
+ ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to a value of 64k. This should
+ increase the test results on OpenVMS to a better level
+
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ Set ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE to SSIZE_MAX to match
+ the old behaviour.
+
+ * ace/Reactor.h:
+ Layout change
+
+ * ace/Select_Reactor_T.cpp:
+ Layout change, initialise pointer to 0
+
+ * ace/SSL/SSL_SOCK_Stream.inl:
+ Const changes
+
+ * ace/TP_Reactor.cpp:
+ Layout change
+
+Fri Dec 7 18:33:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_main.h:
+ Make sure we initialise the resolvLib with VxWorks RTP
+
+Fri Dec 7 06:27:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/gperf/gperf.mpc:
+ * bin/PerlACE/perlace.mpc:
+ With vc9 set ConfigurationType to 10 to disable the creation
+ of the manifest file which fails because these projects don't
+ have source code
+
+Thu Dec 6 15:22:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SSL/SSL_SOCK_Stream.cpp:
+ Layout and const changes
+
+Wed Dec 5 14:46:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/INET_Addr.cpp:
+ Use this-> to comply with coding standards
+
+ * ace/OS_NS_dlfcn.inl:
+ Initialise pointer with 0
+
+ * ace/OS_NS_netdb.cpp:
+ Use C++ const_cast instead of c-style cast
+
+Tue Dec 4 20:20:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/INET_Addr.cpp:
+ Removed some not needed ACE_UNUSED_ARG
+
+ * OS_NS_netdb.inl (gethostbyaddr_r):
+ Fixed VxWorks implementation
+
+Tue Dec 4 19:28:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Run all csd tests on VxWorks
+
+Tue Dec 4 18:07:59 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * bin/fuzz.pl:
+
+ Temporarily exclude $TAO_ROOT/orbsvcs/orbsvcs/ESF from the
+ ACE_SYNCH_MUTEX check to eliminate fuzz warnings.
+
+Tue Dec 4 16:30:19 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * tests/Reactor_Notify_Test.cpp: Don't try to call
+ run_quiet_notify_test in single-threaded build.
+
+Tue Dec 4 15:03:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Base.h:
+ Changed ACE_IMPLEMENT_WITH_NATIVE_LONGDOUBLE to
+ ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE which has to be defined to
+ 1. This makes this file easier to maintain
+
+ * ace/config-linux-common.h:
+ * aceconfig-vxworks5.x.h:
+ Added ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE defined as 1. This fixes
+ also the LongDouble issues with VxWorks 6.x
+
+Tue Dec 4 13:50:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Name_Handler.cpp (parse_args):
+ Fixed unicode build
+
+Mon Dec 3 19:41:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Added bug 3163 regression
+
+Mon Dec 3 19:00:57 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * netsvcs/lib/Name_Handler.cpp (naming_context): Fixed typos.
+
+Mon Dec 3 14:57:36 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * netsvcs/lib/Name_Handler.h: Moved the inline methods to the
+ Name_Handler.cpp file. Also, zapped the unnecessary virtual
+ method for naming_context(). Thanks to Johnny for catching
+ this.
+
+Mon Dec 3 14:21:20 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * netsvcs/lib/Name_Handler.{h,cpp}: Check the return value from
+ this->parse_args (argc, argv) and allow use all range config
+ options for ACE_Name_Acceptor::init. Thanks to Vladislav Zverev
+ vladislav at gtss dot spb dot ru> for these patches.
+
+Mon Dec 3 10:06:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.inl:
+ Removed not needed check for pthread_cancel
+
+Mon Dec 3 10:02:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-aix-5.x.h:
+ * ace/config-cray.h:
+ * ace/config-cygwin32.h:
+ * ace/config-hpux-11.00.h:
+ * ace/config-integritySCA.h:
+ * ace/config-irix6.x-common.h:
+ * ace/config-linux.h:
+ * ace/config-macosx-leopard.h:
+ * ace/config-macosx-panther.h:
+ * ace/config-macosx-tiger.h:
+ * ace/config-macosx.h:
+ * ace/config-netbsd.h:
+ * ace/config-openvms.h:
+ * ace/config-posix.h:
+ * ace/config-qnx-neutrino.h:
+ * ace/config-qnx-rtp-62x.h:
+ * ace/config-qnx-rtp-pre62x.h:
+ * ace/config-rtems.h:
+ * ace/config-sunos5.5.h:
+ * ace/config-unixware-7.1.0.h:
+ * ace/config-unixware-7.1.0.udk.h:
+ * ace/config-vxworks5.x.h:
+ * ace/config-vxworks6.2.h:
+ * ace/config-vxworks6.3.h:
+ * ace/config-vxworks6.4.h:
+ * ace/config-win32-interix.h:
+ Removed ACE_HAS_PTHREADS_STD, we only support the official pthread
+ standard, not any draft
+
+ * ace/config-cray.h:
+ Removed support for Unicos 9 and earlier. So far as I can find on the web
+ unicos 9 is from 1997
+
+ * ace/config-mvs.h:
+ Removed draft6, according to references on the web the std
+ pthread is supported now
+
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ Newer NSK versions to support pthread std
+
+ * ace/config-tru64.h:
+ Removed support for ancient tru64 versions
+
+ * ace/os_include/os_limits.h:
+ Updated for VxWorks 6.6.
+
+ * ace/os_include/os_pthread.h:
+ Removed support for the draft pthread mappings
+
+ * ace/os_include/os_time.h:
+ Use ACE_HAS_PTHREADS
+
+ * ace/os_include/sys/os_msg.h:
+ Removed not needed workaround for osf1
+
+ * ace/OS_NS_pwd.inl:
+ * ace/OS_NS_signal.inl:
+ Use ACE_HAS_PTHREADS
+
+ * ace/OS_NS_string.cpp:
+ Initialise pointer with 0
+
+ * ace/OS_NS_Thread.cpp:
+ * ace/OS_NS_Thread.inl:
+ * ace/Thread_Manager.cpp:
+ Removed support for pthread draft 4, 6, & 7
+
+ * ace/Recursive_Thread_Mutex.cpp:
+ get_nesting_level is only not support with VxWorks tasks
+
+ * ace/Select_Reactor_Base.cpp:
+ Layout change
+
+ * ace/Token.h:
+ Only with VxWorks tasks use semaphores
+
+ * ace/WIN32_Asynch_IO.cpp
+
+Sun Dec 2 17:47:13 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * configure.ac:
+
+ Remove code which defined ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
+ and ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION feature test macros.
+ There are vestigial bits of the tests which still remain -- the
+ entire platform template capability tests need to be rewritten.
+
+ * m4/config_h.m4:
+
+ Remove templates for ACE_HAS_TEMPLATE_INSTANTATION_PRAGMA and
+ ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION.
+
+Sun Dec 2 17:43:27 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/README:
+
+ Remove description of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION.
+ This feature test macro was removed some time ago.
+
+Sun Dec 2 17:41:01 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/OS_NS_stdlib.cpp:
+
+ Change initial program name returned by the emulated version of
+ ACE_OS::getprogname() to be the empty string rather than a null
+ pointer.
+
+Sun Dec 2 06:47:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/gperf/tests/test.cpp:
+ Fixed conversion warning
+
+Sat Dec 1 17:06:32 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * bin/fuzz.pl:
+ Fixed the checks of ACE_SYNCH_MUTEX and ACE_Thread_Mutex to exclude
+ checking for those key words in ACE. We only want to detect the usage
+ of those words in TAO and CIAO.
+
+Fri Nov 30 23:59:41 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * bin/fuzz.pl:
+
+ Added the following checks:
+
+ check_for_ACE_SYNCH_MUTEX:
+ This test checks for the use of ACE_SYNCH_MUTEX in TAO/CIAO,
+ TAO_SYNCH_MUTEX should be used instead for consistency.
+
+ check_for_ACE_Thread_Mutex:
+ This test checks for the use of ACE_Thread_Mutex in TAO/CIAO,
+ TAO_SYNCH_MUTEX should be used instead to make the code buid
+ in single-threaded builds.
+
+ I will fix the resulting fuzz errors over the weekend.
+
+Fri Nov 30 22:11:32 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * ace/WFMO_Reactor.h: Clarify that only the owner thread can expire
+ timers and wait on the notifications handle.
+
+Fri Nov 30 21:53:15 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * tests/Reactor_Notify_Test.cpp: Added a test to verify that a quiet
+ (e.g., no I/O occurring) event loop will be awoken by a notify().
+
+Fri Nov 30 16:58:00 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * ace/CDR_Stream.{h cpp}:
+ Added replace (ACE_CDR::Short, char *), analogous to the existing
+ replace (ACE_CDR::Long, char *); replaces a previous place in the
+ stream with a short.
+ To make the replace() methods more convenient and easier to use
+ correctly, added the following methods:
+ char* write_long_placeholder (void);
+ char* write_short_placeholder (void);
+ These methods align the stream's write pointer properly then write
+ a 0-valued placeholder in the stream. The pointer to the placeholder
+ is returned; that pointer can later be passed to replace().
+
+ * tests/CDR_Test.cpp: Added tests for placeholder and replace ops.
+
+ Thank you to Howard Finer for contributing these additions.
+
+ * NEWS: Added note about these additions.
+
+Fri Nov 30 11:50:00 UTC 2007 Simon Massey <sma@prismtech.com>
+
+ * bin/tao_other_tests.lst:
+ add TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/run_test.pl
+
+Thu Nov 29 19:49:23 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Process_Manager_Test.cpp: Changed ACE_MT_SYNCH to ACE_SYNCH so
+ this works on single-threaded builds. Thanks to Johnny for
+ reporting this.
+
+Thu Nov 29 18:10:27 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/ARGV.h:
+
+ #include "ace/Global_Macros.h". This is included implicitly on
+ platforms where ACE_TEMPLATES_REQUIRE_SOURCE, but is needed for
+ those that don't.
+
+Wed Nov 28 13:37:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ Only use pic when building rtp
+
+Wed Nov 28 13:27:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.inl:
+ Updated for VxWorks 6.6
+
+Wed Nov 28 13:24:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Task.cpp:
+ Updated for VxWorks 6.6
+
+Wed Nov 28 13:18:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_arpa_inet.cpp:
+ Updated for VxWorks 6.6
+
+Wed Nov 28 13:08:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/sys/os_types.h:
+ Updated for VxWorks 6.6
+
+Wed Nov 28 10:56:29 UTC 2007 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * bin/tao_orb_tests.lst:
+ Added Bug_3154_Regression.
+
+Wed Nov 28 07:30:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Timer_Queue_Adapters.{h,cpp}:
+ Updated activate method because of new argument in the base
+ class
+
+Tue Nov 27 14:16:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Added support for Fedora 8
+
+Tue Nov 27 14:03:17 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Process_Manager_Test.cpp: Added
+
+ #include "ace/Synch_Traits.h"
+
+ so the ACE_MT_SYNCH macro is visible. Thanks to Johnny for
+ reporting this.
+
+Tue Nov 27 13:14:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ Added missing const_cast for VxWorks
+
+Tue Nov 27 13:10:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/Multicast/server.cpp
+ Don't use the deprecated ACE_SOCK_Dgram_Mcast methods
+
+Tue Nov 27 10:01:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ Updated for FC7
+
+Tue Nov 27 08:27:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.{h,cpp,inl}:
+ * ace/Task.{h,cpp}:
+ * ace/Thread.{h,cpp,inl}:
+ * ace/Thread_Manager.{h,cpp}:
+ Added a const char* argument to all methods that create a thread
+ so that we can pass in an optional thread name which is used at
+ this moment only on VxWorks. Added ACE_OS::thr_name() to retrieve
+ the name of the current thread.
+
+ * ace/SOCK_Dgram_Mcast.{h,cpp}:
+ Removed deprecated subscribe/unsubscribe methods
+
+Tue Nov 27 06:33:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/Multicast/Log_Wrapper.cpp:
+ Don't use the deprecated ACE_SOCK_Dgram_Mcast methods
+
+Mon Nov 26 20:41:03 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Process_Manager_Test.cpp: Changed the use of
+ ACE_Thread_Mutex to ACE_SYNCH_MUTEX so that the test compilees
+ properly on single-threaded builds. Thanks to Johnny for
+ reporting this.
+
+Mon Nov 26 19:41:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/Ntalker/ntalker.cpp:
+ Don't use the deprecated ACE_SOCK_Dgram_Mcast methods
+
+Mon Nov 26 15:10:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.6.GNU:
+ * ace/config-vxworks6.6.h:
+ New files for VxWorks 6.6
+
+Mon Nov 26 12:27:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ Make sure we also use -mlongcall with c files
+
+Mon Nov 26 11:26:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux.GNU:
+ With FC6 and RedHat 5.0/5.1 we have to disable visibility. Use
+ lsb_release info to detect these versions. Simplifies the checks
+ we do and at the same moment we also support RedHat 5.1 on IA65
+
+Mon Nov 26 11:04:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Enabed several tests for VxWorks
+
+Mon Nov 26 03:29:21 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Process_Manager.cpp: Fixed a problem where spawning a
+ process with ACE_Process_Manager resulted in deadlock while
+ waiting for the end of another process. Thanks to Oliver Spang
+ <oliver dot spang at nsn dot com> for these fixes.
+
+ * tests/Process_Manager_Test.cpp: Added a regression test for
+ Oliver's patches. Thanks again to oliver Spang for this code.
+
+Sun Nov 25 09:18:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.inl (vsprintf):
+ Updated for msvc9
+
+Sun Nov 25 09:15:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-msvc9.h:
+ Disabled warning 4250 with this compiler
+
+Sat Nov 24 00:23:34 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * ace/Reactor.h: Clarified the workings of the optional hook function
+ that can be passed to event loop methods. Thanks to Andre Kostur
+ for this idea.
+
+Fri Nov 23 19:38:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/config/vc8_warnings.mpb:
+ * bin/MakeProjectCreator/config/vc_warnings.mpb:
+ Renamed vc8 to vc because this file is now also used for vc9
+
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ Updated base project because of rename above
+
+ * bin/MakeProjectCreator/config/vc9.features:
+ New file
+
+ * bin/MakeProjectCreator/config/vc9nmake.mpb:
+ New file
+
+ * contrib/minizip/minizip.mpc:
+ Updated for vc9
+
+ * examples/Service_Configurator/Misc/Timer_Service.cpp:
+ Layout change
+
+ * examples/Connection/non_blocking/CPP-connector.cpp:
+ Just not name an argument instead of using ACE_UNUSED_ARG
+
+ * examples/APG/Reactor/HAStatus-AC.cpp:
+ Initialise some pointers with 0
+
+ * bin/make_release.py:
+ Added generation for vc9
+
+ * ASNMP/asnmp/wpdu.cpp:
+ Layout change
+
+ * ACE-install.sh:
+ Removed, ancient
+
+Fri Nov 23 19:38:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SOCK_Dgram_Mcast.cpp:
+ Use join instead of subscribe
+
+Fri Nov 23 06:50:01 UTC 2007 Olli Savia <ops@iki.fi>
+
+ * tests/run_test.lst:
+ Do not run Signal_Test on LynxOS.
+
+Thu Nov 22 13:47:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ace_for_tao.mpc:
+ * ace/QoS/qos.mpc:
+ * bin/MakeProjectCreator/config/ace_fl.mpb:
+ * bin/MakeProjectCreator/config/ace_gl.mpb:
+ * bin/MakeProjectCreator/config/ace_qt.mpb:
+ * bin/MakeProjectCreator/config/ace_x11.mpb:
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/ipv6.mpb:
+ Added support for vc9
+
+Thu Nov 22 12:44:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Vector_T.inl:
+ Fixed compile error
+
+ * bin/msvc_mpc_auto_compile.pl:
+ * bin/msvc_static_compile.pl:
+ Added vc9 as option
+
+Wed Nov 21 21:43:54 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Vector_T.inl (advance):
+ * ace/Vector_T.cpp: Fixed the push_back() and pop_back() methods
+ so they work properly after resizing. Thanks to Karl-Heinz Wind
+ <wind at itq dot de> for these fixes. This fixes bugid 3152.
+
+Wed Nov 21 21:36:27 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tests/Vector_Test.cpp (run_main): Updated the test so that it
+ checks for the buggy push_back() and pop_back(). Thanks to
+ Karl-Heinz Wind <wind at itq dot de> for providing these
+ enhancements.
+
+Wed Nov 21 19:37:29 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * examples/Reactor/Ntalker/ntalker.cpp (ACE_TMAIN):
+
+ Use ACE_SOCK_Dgram_Mcast::leave() instead of deprecated
+ ...::unsubscribe() to leave the multicast group. Thanks to
+ Stefan Naewe <stefan dot naewe at atlas-elektronik dot com> for
+ reporting this.
+
+Wed Nov 21 16:14:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_utsname.cpp (name):
+ Extended VxWorks implementation
+
+Wed Nov 21 16:06:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Added support for iBoot
+
+Sun Nov 18 06:25:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Fixed ACE_HAS_POSIX_SEM_TIMEOUT check, thanks to Thomas Girard
+ <thomas dot g dot girard at free dot fr> for reporting this.
+ This fixes bugzilla 3153
+
+Fri Nov 16 04:12:20 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * examples/Service_Configurator/Misc/main.cpp (ACE_TMAIN): Added a
+ space between "-f" and "svc.conf". This fixes a bug. Thanks
+ to Kun Niu <haoniukun at gmail dot com> for this fix.
+
+Fri Nov 16 09:37:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ * ace/config-linux-common.h:
+ * m4/platform.m4:
+ Changed ACE_HAS_LINUX_NPTL to ACE_LACKS_LINUX_NPTL. All recent
+ linux distributions do have NPTL, only older versions lack this
+ support. By changing HAS to LACKS it makes it easier to use ACE
+ with their own makefile scheme. This fixes bugzilla 3084
+
+Thu Nov 15 19:44:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_common.GNU:
+ Retrieve distribution and release number using lsb_release
+
+ * include/makeinclude/platform_g++_common.GNU:
+ Moved RedHat/FC checks to platform_linux.GNU, this only needs
+ to be done when using GCC on Linux, not when using GCC on
+ other platforms
+
+ * include/makeinclude/platform_linux.GNU:
+ With Ubuntu 7.04 and 7.10 we can't use visibilit, we get
+ unresolved externals when using it. We are now using
+ lsb_release to detect the distribution
+
+Thu Nov 15 08:41:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_limits.h:
+ PIPE_BUF is also defined to -1 with VxWorks 6.5
+
+Thu Nov 15 05:40:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks5.5.x.GNU:
+ * include/makeinclude/platform_vxworks6.2.GNU:
+ * include/makeinclude/platform_vxworks6.3.GN:
+ Add -mlongcall also to CFLAGS
+
+Wed Nov 14 19:12:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ When link_groups is defined to 1 we group the LDLIBS within
+ -Wl,--start-group and -Wl,--end-group. This way the user can
+ manually enable this through the platform_macros.GNU file and
+ doesn't need to regenerate all makefiles. Also removed the
+ check for the compiler name, with VxWorks we also can use this
+ and there we have different compilers (ccppc, ccpentium, etc)
+
+ * include/makeinclude/wrapper_macros.GNU:
+ also can use this
+ and there we have different compilers (ccppc, ccpentium, etc)
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Set link_groups to 0 by default, the user has to explicitly enable
+ it
+
+ * bin/MakeProjectCreator/docs/templates/gnu.txt:
+ Removed link_groups, that is now enabled through platform_macros.GNU,
+ not through MPC
+
+Wed Nov 14 16:16:49 UTC 2007 Ciju John <johnc at ociweb dot com>
+
+ * ace/Service_Config.cpp:
+ Check the reactor instance before using it.
+
+Wed Nov 14 14:34:26 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/config_h.m4:
+ * m4/platform.m4:
+
+ Remove autoheader template and platform support for the pSOS
+ platform. Support was removed from ACE some time ago.
+
+Wed Nov 14 11:00:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_linux_icc.GNU:
+ Added support for Intel C++ 10.1
+
+Wed Nov 14 07:47:28 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/config_h.m4:
+
+ Removed PTHREAD_STACK_MAX autoheader template as this feature
+ test macro is not used.
+
+Wed Nov 14 07:46:43 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/config_h.m4:
+ * m4/platform.m4:
+
+ Remove autoheader template and platform support for the DG/UX
+ platforms. Support was removed from ACE some time ago.
+
+Wed Nov 14 07:23:07 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/platform.m4:
+
+ Update autoheader templates for ACE_INT64_FORMAT_SPECIFIER and
+ ACE_UINT64_FORMAT_SPECIFIER to clarify that they're the printf
+ format specifiers for the ACE_INT64 and ACE_UINT64 types.
+
+ This can be an important distinction for platforms with
+ compilers that validate literal format strings (where passing
+ "long long" for "%ld", or "long" for "%lld" will result in an
+ warning/error even when both are 64 bit integers).
+
+Wed Nov 14 07:18:21 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/platform.m4:
+
+ Remove platform support for the "fsu" platform. Support was
+ removed from ACE some time ago.
+
+Wed Nov 14 07:12:03 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * m4/config_h.m4:
+ * m4/platform.m4:
+
+ Remove autoheader templates and platform support for the "m88k"
+ platform. Support was removed from ACE some time ago.
+
+Tue Nov 13 14:34:17 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * configure.ac:
+ * m4/config_h.m4:
+
+ Replace autoheader templates for ACE_HAS_ALPHA_TIMER,
+ ACE_HAS_POWERPC_TIMER, and ACE_HAS_PENTIUM in config_h.m4 with
+ a third argument to AC_DEFINE in configure.ac
+
+Tue Nov 13 07:45:25 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * configure.ac:
+
+ Add ACE_HAS_INTEL_ASSEMBLY feature test.
+
+Tue Nov 13 06:48:16 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/OS_NS_time.inl:
+
+ Changed the inline assembly implementation of gethrtime() for
+ the amd64/x86_64 architecture to recognize that the timestamp is
+ read into the %eax and %edx registers, and thus must be combined
+ into a 64 bit value. Thanks to Nathan Ernst <Nathan dot Ernst at
+ citadelgroup dot com > for reporting this bug.
+
+ * THANKS:
+
+ Add Nathan Ernst <Nathan dot Ernst at citadelgroup dot com>.
+
+Tue Nov 13 06:01:33 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/OS_NS_stdio.inl:
+
+ Change of Thu Nov 8 04:02:21 UTC 2007 was missing ACE_WIN32
+ in conditional. Thanks to Johnny Willemsen for pointing out
+ resulting scoreboard failures.
+
+Mon Nov 12 20:05:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Enabled Smart_Proxies/Policy with VxWorks
+
+Mon Nov 12 14:16:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Log_Msg.{h,cpp,inl}:
+ Use bool for several flags
+
+Mon Nov 12 14:12:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Disable Bug_2953_Regression for the moment on VxWorks, it hangs out
+ target
+
+Mon Nov 12 13:04:11 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/CDR_Base.inl:
+
+ Take advantage of bswap16, bswap32, and bswap64 macros when
+ ACE_HAS_BSWAPXX is defined as we do for bswap_16, bswap_32,
+ and bswap_64 when ACE_HAS_BSWAP_XX is defined.
+
+ * configure.ac:
+
+ Changed checks for bswap_16, bswap_32, and bswap_64 to use
+ ACE_CHECK_HAS_DEFINES. Thanks to Thomas Girard <thomas dot g
+ dot girard at free dot fr> for reporting the ACE_HAS_BSWAP_XX
+ feature test macros were not being defined because bswap_16,
+ bswap_32, and bswap_64 are implemented as macros. This fixes
+ bugzilla 3134.
+
+ Added check for bswap16, bswap32, and bswap64. These are the
+ *BSD, Darwin, etc. equivalents of the bswap_XX macros.
+
+ * m4/ace_defines.m4:
+
+ New file, new autoconf macros ACE_CHECK_DEFINE,
+ ACE_CHECK_HAS_DEFINES, and ACE_CHECK_LACKS_DEFINES. These are
+ used like ACE_CHECK_HAS_FUNCS and ACE_CHECK_LACKS_FUNCS, where
+ the tested feature is implemented as a macro and not a function.
+
+Mon Nov 12 10:25:00 UTC 2007 Simon Massey <simon.massey@prismtech.com>
+
+ * bin/PerlACE/ConfigList.pm:
+
+ Bugzilla 3085: Fix for "and" test for test suite control.
+
+Mon Nov 12 10:01:53 UTC 2007 Olli Savia <ops@iki.fi>
+
+ * tests/Max_Default_Port_Test.cpp:
+ Changed this test to work on LynxOS.
+
+Mon Nov 12 06:36:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Disable bug 2494 regression for vxworks, it hangs our target.
+ When this test has been analyzed in detail we will enable
+ it again
+
+Mon Nov 12 06:31:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-linux-common.h:
+ The ACE_HAS_RUSAGE_WHO_ENUM and ACE_HAS_RLIMIT_RESOURCE_ENUM
+ are not needed anymore with glibc 2.3 and newer
+ Thanks to Thomas Girard <thomas dot g dot girard at free dot fr>
+ for reporting this. This fixes bugzilla 3143
+
+Sun Nov 11 18:59:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Disable bug 1020 regression for vxworks, it hangs our target.
+ When this test has been analyzed in detail we will enable
+ it again
+
+Sun Nov 11 18:41:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * configure.ac:
+ Added check for wcsnlen.
+ Thanks to Thomas Girard <thomas dot g dot girard at free dot fr>
+ for reporting this. This fixes bugzilla 3146
+
+Sun Nov 11 18:31:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Replaces ACE_RUN_TAO_DEBUG_LEVEL with TAO_RUN_TAO_ORB_DEBUG
+
+Fri Nov 9 23:45:48 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/Makefile.am:
+
+ Remove DEFAULT_INCLUDES= added on Wed Nov 7 04:33:02 UTC 2007.
+ Automake's nostdinc option performs the same function, but in
+ a documented, supported, manner.
+
+ * configure.ac:
+
+ Use nostdinc option to AM_INIT_AUTOMAKE. This instructs
+ automake not to add -I options for the current directory.
+
+Fri Nov 9 02:16:24 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * ace/Asynch_IO.h: Disallow copying and assignment for
+ ACE_Handler. Thanks to Juraj Ivancic <juraj dot ivancic at
+ gmail dot com> for this suggestion.
+
+Fri Nov 9 11:46:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-tandem-nsk-mips-v3.h:
+ * ace/os_include/sys/os_types.h:
+ * ace/Task.cpp:
+ * ace/Truncate.h:
+ Improved NSK support, thanks to Gary Maxey <gary dot maxey at hp dot com>
+ for delivering the patches. This fixes bugzilla 3124
+
+Fri Nov 9 11:25:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.h:
+ Doxygen improvements
+
+Fri Nov 9 11:06:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-linux-common.h:
+ Newer glibc versions don't need ACE_HAS_NONCONST_SETRLIMIT anymore.
+ Thanks to Thomas Girard <thomas dot g dot girard at free dot fr>
+ for reporting this. This fixes bugzilla 3136
+
+Fri Nov 9 09:46:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.2.h:
+ * ace/config-vxworks6.3.h:
+ * ace/config-vxworks6.4.h:
+ Some PPC's don't have log2 in kernel mode
+
+Fri Nov 9 09:37:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.{h,cpp,inl}:
+ * ace/Thread_Manager.cpp:
+ Changed ACE_hthread_t to an int for VxWorks. This makes the core of
+ ACE cleaner and more stable on VxWorks. At this moment you can't give
+ a Task a name, but we will extend the thread creation functions
+ with an additional char* in a next iteration. That way you can use
+ task names also when using pthread on vxworks. See also bugzilla 3131
+
+ * tests/Conn_Test.cpp:
+ * tests/Thread_Manager_Test.cpp:
+ Disable task name setting, will be enabled again when the spawn
+ methods are extended
+
+Fri Nov 9 08:58:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/CDR_Base.inl:
+ Fixed incorrect define. This fixes bugzilla 3139. Thanks to
+ Thomas Girard <thomas dot g dot girard at free dot fr>
+
+ * ace/Dynamic_Service_Base.{h,cpp}:
+ Reduced number of methods by using default argument values
+
+ * ace/Object_Manager.{h,cpp}:
+ * ace/Service_Config.cpp:
+ The Service Configurator depends on the availability of TSS. When
+ TSS emulation is enabled, that emulation needs to be initialized
+ within the Object Manager. The Object Manager also depends on the SG,
+ so added a new init_tss() method that just initializes TSS
+ which is then called from the SG constructor. This fixes
+ problems with TAO VxWorks 6.x kernel mode. Thanks to Iliyan for
+ giving insights how SG/SC should work.
+
+ * ace/OS_NS_Thread.h:
+ Changed key_create_ to bool and check the return value of taskSpawn
+
+ * ace/Reactor.h:
+ * ace/Service_Config.inl:
+ Doxygen change
+
+ * ace/Service_Config.cpp:
+ Updated some debug statements
+
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Added ACE_RUN_ACE_DEBUG and ACE_RUN_TAO_DEBUG_LEVEL, if set then
+ ACE_DEBUG/TAO_DEBUG_LEVEL are set as environment variabled on the
+ target
+
+Thu Nov 8 04:02:21 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/OS_NS_stdio.inl:
+
+ Changed wide character version of ACE_OS::vsnprintf()'s to match
+ ACE_OS::snprintf() as like prior to Sun Oct 28 21:11:57 UTC 2007.
+ This fixes a error reporting in buffer overflow conditions.
+
+ At that time all the ACE_OS::*printf() functions were changed to
+ call ACE_OS::v*printf(). The intent was to reduce the chance of
+ bugs being introduced because of largly parallel implementations.
+ What I didn't expect was that such a bug was already present.
+
+Thu Nov 8 02:09:02 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ace/Codeset_Registry_db.cpp:
+ Added an entry for UTF-8.
+
+Wed Nov 7 18:53:15 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Added Bug_2133 regression
+
+Wed Nov 7 04:33:02 UTC 2007 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ace/Makefile.am:
+
+ Add DEFAULT_INCLUDES definition that got lost during regeneration.
+ Fixes autoconf builds on case-insensitive filesystems.
+
+ * m4/platform.m4:
+
+ Add ACE_HAS_NONCONST_FD_ISSET feature test.
+
+ Thanks to Doug McCorkle <mccdo at iastate dot edu> for providing
+ this patch.
+
+Tue Nov 6 11:30:00 UTC 2007 Simon Massey <simon.massey@prismtech.com>
+
+ * ace/OS_NS_Thread.cpp:
+
+ Re-instated the change of Thu Nov 1 14:40:00 UTC 2007.
+ Valgrind tests prove this is not causing the memory leaks
+ just exposing some existing ones. The whole area of TSS use
+ with singletons/statics needs to be investigated.
+ (See Bugzilla 3128 for details.)
+
+Tue Nov 6 10:59:15 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ Fixed dirname setting
+
Mon Nov 5 20:00:15 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
* apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
@@ -769,7 +1942,7 @@ Thu Oct 11 12:22:57 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
* THANKS:
- Added Grégor Boirie <gregor dot boirie at free dot fr>
+ Added Gr�gor Boirie <gregor dot boirie at free dot fr>
Wed Oct 10 11:33:40 UTC 2007 Steve Huston <shuston@riverace.com>
@@ -3469,7 +4642,7 @@ Sat Jul 28 18:19:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
* configure.ac:
Added checks for byteswap.h, intrin.h, ia32intrin.h, and
- ia64intrin.h, part of buzilla 2905.
+ ia64intrin.h, part of bugzilla 2905.
Fri Jul 27 06:50:14 CDT 2007 Johnny Willemsen <jwillemsen@remedy.nl>
diff --git a/ACE/NEWS b/ACE/NEWS
index 055d18ab435..67504f2fce1 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -5,6 +5,11 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
. (OO) Various other fixes that have been piling up.
+USER VISIBLE CHANGES BETWEEN ACE-5.6.2 and ACE-5.6.3
+====================================================
+
+. Deprecated Visual Age 5 and older
+
USER VISIBLE CHANGES BETWEEN ACE-5.6.1 and ACE-5.6.2
====================================================
@@ -12,6 +17,65 @@ USER VISIBLE CHANGES BETWEEN ACE-5.6.1 and ACE-5.6.2
. Added support for Sun Studio 12
+. Added support for Intel C++ 10.1
+
+. Fixed runtime problems with VxWorks 6.x in kernel mode, several improvements
+ have been made to ACE, but also some problems in the VxWorks kernel have
+ been found for which WindRiver has made patches.
+
+. Added support for VxWorks 6.5 kernel mode
+
+. Added support for MacOS 10.5
+
+. Support for MacOS 10.4 is now deprecated.
+
+. Added support for OpenSuSE 10.3
+
+. Added support for RedHat 5.1
+
+. Added support for Microsoft Visual Studio 2008
+
+. Added support for Fedora Core 8
+
+. Added support for Ubuntu 7.10
+
+. With Ubuntu 7.04 and 7.10 we can't use visibility, that results in
+ unresolved externals when building some tests. With lsb_release we
+ now detect Ubuntu 7.04 and 7.10 automatically and then we disable
+ visibility
+
+. Removed deprecated (un)subscribe methods from ACE_SOCK_Dgram_Mcast
+
+. Added an additional replace() method to ACE_OuptutCDR for replacing a
+ ACE_CDR::Short value. Also added write_long_placeholder() and
+ write_short_placeholder() to properly align the stream's write pointer,
+ write a placeholder value and return the placeholder's pointer. The pointer
+ can later be used in a call to replace() to replace the placeholder with a
+ different value.
+
+. Initial support for VxWorks 6.6
+
+. Removed support for pthread draft 4, 6, & 7. This makes the ACE threading
+ code much cleaner
+
+. Improved autoconf support
+
+. Fixed TSS emulation problems
+
+. Changed ACE_thread_t and ACE_hthread_t to int for VxWorks kernel mode. All
+ thread creation methods do have an additional const char* argument to
+ specify the task name, this now also works with pthread support enabled
+
+. Use bool in much more interfaces where this is possible
+
+. Added support for Debian Etch
+
+. Fixed ACE CDR LongDouble support on VxWorks 6.x
+
+. Added Microsoft Visual Studio 2008 project files to the release packages
+
+. Fixed a few bugs in the ACE_Vector template
+
USER VISIBLE CHANGES BETWEEN ACE-5.6 and ACE-5.6.1
====================================================
diff --git a/ACE/PROBLEM-REPORT-FORM b/ACE/PROBLEM-REPORT-FORM
index a7c69af199d..db14a872db3 100644
--- a/ACE/PROBLEM-REPORT-FORM
+++ b/ACE/PROBLEM-REPORT-FORM
@@ -43,7 +43,7 @@
To: ace-bugs@cs.wustl.edu
Subject: [area]: [synopsis]
- ACE VERSION: 5.6.1
+ ACE VERSION: 5.6.2
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/ACE/THANKS b/ACE/THANKS
index e74f300002a..20b331971bb 100644
--- a/ACE/THANKS
+++ b/ACE/THANKS
@@ -70,6 +70,7 @@ Emre Turkay <turkaye at dre dot vanderbilt dot edu>
Nanbor Wang <nanbor at cs dot wustl dot edu>
Seth Widoff <sbw1 at cs dot wustl dot edu>
Jules White <jules at dre dot vanderbilt dot edu>
+Friedhelm Wolf <fwolf at dre dot vanderbilt dot edu>
Torben Worm <tworm at cs dot wustl dot edu>
Ming Xiong <xiongm at isis dot vanderbilt dot edu>
@@ -2007,7 +2008,6 @@ Steven T. Hatton <hattons at globalsymmetry dot com>
Yevgen Galchenko <yevgeng at softcomputer dot com>
Timothy Wayne Gomez <gomezt at saic dot com>
Ventimiglia Chere <Ventimiglia_Chere at emc dot com>
-Friedhelm Wolf <fwolf at dre dot vanderbilt dot edu>
Frederick Heckel <fwph at cse dot wustl dot edu>
Ian Zagorskih <ianzag at megasignal dot com>
Olivier Guérin <guerin35 at hotmail dot com>
@@ -2226,6 +2226,14 @@ Nathan Glasser <nglasser at cantata dot com>
Grégor Boirie <gregor dot boirie at free dot fr>
Alex Solan <alex dot solan at gmail dot com>
Venkat Sidhabathuni <venkats at idengines dot com>
+Nathan Ernst <Nathan dot Ernst at citadelgroup dot com>
+Kun Niu <haoniukun at gmail dot com>
+Karl-Heinz Wind <wind at itq dot de>
+Oliver Spang <oliver dot spang at nsn dot com>
+Hu Yi <huyi dot zg at gmail dot com>
+Joe Seward <joseph dot f dot seward at saic dot com>
+Tom Callaway <tcallawa at redhat dot com>
+Alick Nie <alick_nie at 163 dot com>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/ACE/VERSION b/ACE/VERSION
index 829b2535308..077603e6357 100644
--- a/ACE/VERSION
+++ b/ACE/VERSION
@@ -1,4 +1,4 @@
-This is ACE version 5.6.1, released Wed Sep 19 04:10:15 CDT 2007
+This is ACE version 5.6.2, released Fri Dec 14 02:48:57 CST 2007
If you have any problems with or questions about ACE, please send
email to the ACE mailing list (ace-users@cs.wustl.edu), using the form
diff --git a/ACE/ace/ARGV.h b/ACE/ace/ARGV.h
index 7c714e17413..a50535f1dea 100644
--- a/ACE/ace/ARGV.h
+++ b/ACE/ace/ARGV.h
@@ -21,6 +21,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "ace/Global_Macros.h"
#include "ace/Unbounded_Queue.h"
// Open versioned namespace, if enabled by the user.
diff --git a/ACE/ace/Asynch_IO.h b/ACE/ace/Asynch_IO.h
index 9e9c5ad837d..e71c16ca3ee 100644
--- a/ACE/ace/Asynch_IO.h
+++ b/ACE/ace/Asynch_IO.h
@@ -1625,6 +1625,9 @@ protected:
/// Refers to proxy for this handler.
ACE_Refcounted_Auto_Ptr<Proxy, ACE_SYNCH_MUTEX> proxy_;
+
+ ACE_UNIMPLEMENTED_FUNC (ACE_Handler (const ACE_Handler &))
+ ACE_UNIMPLEMENTED_FUNC (ACE_Handler operator= (const ACE_Handler &))
};
// Forward declarations
diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h
index 3507b21c4ae..afd278a5e59 100644
--- a/ACE/ace/CDR_Base.h
+++ b/ACE/ace/CDR_Base.h
@@ -280,14 +280,14 @@ public:
// with Windows, Solaris, AIX, MacOS X and HP-UX (and probably others)
// long double format (8 or 16 bytes). If you need 32-bit Linux to
// inter-operate with 64-bit Linux you will want to define this
- // macro so that "long double" is used. Otherwise, do not define
+ // macro to 0 so that "long double" is used. Otherwise, do not define
// this macro.
-# if defined (ACE_IMPLEMENT_WITH_NATIVE_LONGDOUBLE) || \
- (!defined (linux) && !defined (VXWORKS))
- typedef long double NativeImpl;
-# else
+# if defined (ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE) && \
+ (ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE == 1)
typedef double NativeImpl;
-# endif /* ACE_IMPLEMENT_WITH_NATIVE_LONGDOUBLE || (!linux && !VXWORKS) */
+# else
+ typedef long double NativeImpl;
+# endif /* ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE==1 */
char ld[16];
diff --git a/ACE/ace/CDR_Base.inl b/ACE/ace/CDR_Base.inl
index 811165f91bf..b84470af87f 100644
--- a/ACE/ace/CDR_Base.inl
+++ b/ACE/ace/CDR_Base.inl
@@ -8,7 +8,7 @@
# pragma intrinsic (_byteswap_ushort, _byteswap_ulong, _byteswap_uint64)
#endif /* ACE_HAS_INTRINSIC_BYTESWAP */
-#if defined (ACE_HAS_BSWAP_16) || defined (ACE_HAS_BSWAP_32) || defined (ACE_HAS_BSWAP_32)
+#if defined (ACE_HAS_BSWAP_16) || defined (ACE_HAS_BSWAP_32) || defined (ACE_HAS_BSWAP_64)
# include "ace/os_include/os_byteswap.h"
#endif
@@ -70,9 +70,12 @@ ACE_CDR::swap_2 (const char *orig, char* target)
// function.
*reinterpret_cast<unsigned short *> (target) =
_byteswap_ushort (*reinterpret_cast<unsigned short const *> (orig));
+#elif defined (ACE_HAS_BSWAP16)
+ *reinterpret_cast<uint16_t *> (target) =
+ bswap16 (*reinterpret_cast<uint16_t const *> (orig));
#elif defined (ACE_HAS_BSWAP_16)
- *reinterpret_cast<unsigned short *> (target) =
- bswap_16 (*reinterpret_cast<unsigned short const *> (orig));
+ *reinterpret_cast<uint16_t *> (target) =
+ bswap_16 (*reinterpret_cast<uint16_t const *> (orig));
#elif defined(ACE_HAS_INTEL_ASSEMBLY)
unsigned short a =
*reinterpret_cast<const unsigned short*> (orig);
@@ -101,9 +104,12 @@ ACE_CDR::swap_4 (const char* orig, char* target)
// function.
*reinterpret_cast<unsigned long *> (target) =
_byteswap_ulong (*reinterpret_cast<unsigned long const *> (orig));
+#elif defined (ACE_HAS_BSWAP32)
+ *reinterpret_cast<uint32_t *> (target) =
+ bswap32 (*reinterpret_cast<uint32_t const *> (orig));
#elif defined (ACE_HAS_BSWAP_32)
- *reinterpret_cast<unsigned int *> (target) =
- bswap_32 (*reinterpret_cast<unsigned int const *> (orig));
+ *reinterpret_cast<uint32_t *> (target) =
+ bswap_32 (*reinterpret_cast<uint32_t const *> (orig));
#elif defined(ACE_HAS_INTEL_ASSEMBLY)
// We have ACE_HAS_PENTIUM, so we know the sizeof's.
register unsigned int j =
@@ -133,9 +139,12 @@ ACE_CDR::swap_8 (const char* orig, char* target)
// function.
*reinterpret_cast<unsigned __int64 *> (target) =
_byteswap_uint64 (*reinterpret_cast<unsigned __int64 const *> (orig));
+#elif defined (ACE_HAS_BSWAP64)
+ *reinterpret_cast<uint64_t *> (target) =
+ bswap64 (*reinterpret_cast<uint64_t const *> (orig));
#elif defined (ACE_HAS_BSWAP_64)
- *reinterpret_cast<unsigned long long *> (target) =
- bswap_64 (*reinterpret_cast<unsigned long long const *> (orig));
+ *reinterpret_cast<uint64_t *> (target) =
+ bswap_64 (*reinterpret_cast<uint64_t const *> (orig));
#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__)
register unsigned long x =
* reinterpret_cast<const unsigned long*> (orig);
diff --git a/ACE/ace/CDR_Stream.cpp b/ACE/ace/CDR_Stream.cpp
index a9e1fa4f6cf..00af2b70940 100644
--- a/ACE/ace/CDR_Stream.cpp
+++ b/ACE/ace/CDR_Stream.cpp
@@ -651,6 +651,46 @@ ACE_OutputCDR::write_array (const void *x,
ACE_CDR::Boolean
+ACE_OutputCDR::write_boolean_array (const ACE_CDR::Boolean* x,
+ ACE_CDR::ULong length)
+{
+ // It is hard to optimize this, the spec requires that on the wire
+ // booleans be represented as a byte with value 0 or 1, but in
+ // memory it is possible (though very unlikely) that a boolean has
+ // a non-zero value (different from 1).
+ // We resort to a simple loop.
+ ACE_CDR::Boolean const * const end = x + length;
+
+ for (ACE_CDR::Boolean const * i = x;
+ i != end && this->good_bit ();
+ ++i)
+ (void) this->write_boolean (*i);
+
+ return this->good_bit ();
+}
+
+
+char *
+ACE_OutputCDR::write_long_placeholder (void)
+{
+ this->align_write_ptr (ACE_CDR::LONG_SIZE);
+ char *pos = this->current_->wr_ptr ();
+ this->write_long (0);
+ return pos;
+}
+
+
+char *
+ACE_OutputCDR::write_short_placeholder (void)
+{
+ this->align_write_ptr (ACE_CDR::SHORT_SIZE);
+ char *pos = this->current_->wr_ptr();
+ this->write_short (0);
+ return pos;
+}
+
+
+ACE_CDR::Boolean
ACE_OutputCDR::replace (ACE_CDR::Long x, char* loc)
{
if (this->find (loc) == 0)
@@ -674,22 +714,25 @@ ACE_OutputCDR::replace (ACE_CDR::Long x, char* loc)
ACE_CDR::Boolean
-ACE_OutputCDR::write_boolean_array (const ACE_CDR::Boolean* x,
- ACE_CDR::ULong length)
+ACE_OutputCDR::replace (ACE_CDR::Short x, char* loc)
{
- // It is hard to optimize this, the spec requires that on the wire
- // booleans be represented as a byte with value 0 or 1, but in
- // memory it is possible (though very unlikely) that a boolean has
- // a non-zero value (different from 1).
- // We resort to a simple loop.
- ACE_CDR::Boolean const * const end = x + length;
+ if (this->find (loc) == 0)
+ return false;
- for (ACE_CDR::Boolean const * i = x;
- i != end && this->good_bit ();
- ++i)
- (void) this->write_boolean (*i);
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::Short*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::Short *> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_2 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
- return this->good_bit ();
+ return true;
}
diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h
index 6588664f36f..58ddea442ed 100644
--- a/ACE/ace/CDR_Stream.h
+++ b/ACE/ace/CDR_Stream.h
@@ -233,32 +233,6 @@ public:
ACE_CDR::Boolean write_double (const ACE_CDR::Double &x);
ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x);
- /**
- * Writes a ACE_CDR::Long value into a specific location. This is commonly
- * used to update a prior location in the stream which was previously
- * written as a ACE_CDR::Long placeholder. There is no alignment required
- * since the alignment is done before writing the long type placeholder.
- * Treatment of @a x with repect to byte swapping is the same as for when
- * any ACE_CDR::Long value is inserted.
- *
- * @param x The Long value to insert into the specified location.
- * @param loc The location at which to insert @a x. @a loc must be a valid
- * position within the stream's current set of message blocks.
- *
- * @note An example use for this feature is:
- * @code
- ACE_OutputCDR strm;
- ... // insert values...
- strm.align_write_ptr (ACE_CDR::LONG_SIZE);
- char *pos = strm.current ().wr_ptr ();
- strm.write_long (0); // Placeholder value
- ... // insert more values
- ACE_CDR::Long real_val; // Somehow assign the "correct" value
- strm.replace (real_val, pos); // Replace earlier placeholder
- @endcode
- */
- ACE_CDR::Boolean replace (ACE_CDR::Long x, char* loc);
-
/// For string we offer methods that accept a precomputed length.
ACE_CDR::Boolean write_string (const ACE_CDR::Char *x);
ACE_CDR::Boolean write_string (ACE_CDR::ULong len,
@@ -306,6 +280,52 @@ public:
//@}
/**
+ * @{ @name Placeholder/replace operations
+ * Facilitates writing a placeholder into a CDR stream to be replaced
+ * later with a different value.
+ *
+ * @note An example use for this facility is:
+ * @code
+ ACE_OutputCDR strm;
+ ... // insert values...
+ char *pos = strm.write_long_placeholder ();
+ ... // insert more values
+ ACE_CDR::Long real_val; // Somehow assign the "correct" value
+ strm.replace (real_val, pos); // Replace earlier placeholder
+ @endcode
+ */
+
+ /**
+ * Write a placeholder into the stream. The placeholder's pointer
+ * is returned so it may later be passed as the @a loc argument to
+ * replace ().
+ * These methods align the stream's write pointer properly prior to
+ * writing the placeholder.
+ */
+ char* write_long_placeholder (void);
+ char* write_short_placeholder (void);
+
+ /**
+ * Writes a new value into a specific location. This is commonly
+ * used to update a prior "placeholder" location in the stream.
+ * The specified location is assumed to have proper CDR alignment for the
+ * type to insert. This requirement is satisfied by using one of the
+ * placeholder-writing methods to align the stream for the anticipated
+ * value and obtain the correct location.
+ * Treatment of @a x with repect to byte swapping is the same as for when
+ * any value is inserted.
+ *
+ * @param x The value to insert into the specified location.
+ * @param loc The location at which to insert @a x. @a loc must be a valid
+ * position within the stream's current set of message blocks.
+ *
+ * @sa write_long_placeholder(), write_short_placeholder ()
+ */
+ ACE_CDR::Boolean replace (ACE_CDR::Long x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Short x, char* loc);
+ //@}
+
+ /**
* Return 0 on failure and 1 on success.
*/
//@{ @name Append contents of own CDR stream to another
diff --git a/ACE/ace/Codecs.cpp b/ACE/ace/Codecs.cpp
index 4e8dbd5106e..505c5fc9916 100644
--- a/ACE/ace/Codecs.cpp
+++ b/ACE/ace/Codecs.cpp
@@ -37,7 +37,8 @@ ACE_Byte ACE_Base64::member_[256];
ACE_Byte*
ACE_Base64::encode (const ACE_Byte* input,
const size_t input_len,
- size_t* output_len)
+ size_t* output_len,
+ bool is_chunked)
{
if (!ACE_Base64::init_)
ACE_Base64::init();
@@ -70,7 +71,8 @@ ACE_Base64::encode (const ACE_Byte* input,
result[pos++] = alphabet[bits & 0x3f];
cols += 4;
if (cols == max_columns) {
- result[pos++] = '\n';
+ if (is_chunked)
+ result[pos++] = '\n';
cols = 0;
}
bits = 0;
@@ -87,19 +89,24 @@ ACE_Base64::encode (const ACE_Byte* input,
bits <<= (16 - (8 * char_count));
result[pos++] = alphabet[bits >> 18];
result[pos++] = alphabet[(bits >> 12) & 0x3f];
+ cols += 2;
if (char_count == 1)
{
result[pos++] = pad;
result[pos++] = pad;
+ cols += 2;
}
else
{
result[pos++] = alphabet[(bits >> 6) & 0x3f];
result[pos++] = pad;
+ cols += 2;
}
- if (cols > 0)
- result[pos++] = '\n';
}
+
+ if (cols > 0 && is_chunked)
+ result[pos++] = '\n';
+
result[pos] = 0;
*output_len = pos;
return result;
diff --git a/ACE/ace/Codecs.h b/ACE/ace/Codecs.h
index c0916f724e3..85447b75e06 100644
--- a/ACE/ace/Codecs.h
+++ b/ACE/ace/Codecs.h
@@ -55,13 +55,15 @@ public:
* @param input Binary data in byte stream.
* @param input_len Length of the byte stream.
* @param output_len Length of the encoded Base64 byte stream.
+ * @param is_chunked If true, terminate 72 character blocks with newline
* @return Encoded Base64 data in byte stream or NULL if input data cannot
* be encoded.
*/
static ACE_Byte* encode (const ACE_Byte* input,
const size_t input_len,
- size_t* output_len);
+ size_t* output_len,
+ bool is_chunked = true);
/**
* Decodes a stream of Base64 to bytes data
*
diff --git a/ACE/ace/Codeset_Registry_db.cpp b/ACE/ace/Codeset_Registry_db.cpp
index cd6e29760af..8b1ef176576 100644
--- a/ACE/ace/Codeset_Registry_db.cpp
+++ b/ACE/ace/Codeset_Registry_db.cpp
@@ -20,9 +20,10 @@ ACE_Codeset_Registry::registry_db_[] =
{"ISO 8859-1:1987; Latin Alphabet No. 1","ASCII",0x00010001,1,{0x0011},1},
{"IBM-1047 (CCSID 01047); Latin-1 Open System","EBCDIC",0x10020417,1,{0x0011},1},
{"ISO/IEC 10646-1:1993; UCS-4, Level 1","UCS-4",0x00010104,1,{0x1000},4},
- {"ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format 16-bit form","Unicode",0x00010109,1,{0x1000},2}
+ {"ISO/IEC 10646-1:1993; UTF-16, UCS Transformation Format 16-bit form","Unicode",0x00010109,1,{0x1000},2},
+ {"X/Open UTF-8; UCS Transformation Format 8 (UTF-8)","UTF-8",0x05010001,1,{0x1000},6}
};
-size_t const ACE_Codeset_Registry::num_registry_entries_ = 4;
+size_t const ACE_Codeset_Registry::num_registry_entries_ = 5;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/DLL_Manager.h b/ACE/ace/DLL_Manager.h
index 6c9db0c529d..a59636696ba 100644
--- a/ACE/ace/DLL_Manager.h
+++ b/ACE/ace/DLL_Manager.h
@@ -10,7 +10,6 @@
*/
//=============================================================================
-
#ifndef ACE_DLL_MANAGER_H
#define ACE_DLL_MANAGER_H
#include /**/ "ace/pre.h"
@@ -41,19 +40,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @brief Provides an abstract interface for handling various DLL
* operations.
*
- * This class is an wrapper over the various methods for utilizing
- * a dynamically linked library (DLL), which is called a shared
- * library on some platforms. It is refcounted and managed by
+ * This class is an wrapper over the various methods for utilizing a
+ * dynamically linked library (DLL), which is called a shared library
+ * on some platforms. It is refcounted and managed by
* ACE_DLL_Manager, so there will only be a single instance of this
* class for each dll loaded, no matter how many instances of ACE_DLL
- * an application has open. Operations <open>, <close>, and
- * <symbol> have been implemented to help opening/closing and
- * extracting symbol information from a DLL, respectively.
+ * an application has open. Operations <open>, <close>, and <symbol>
+ * have been implemented to help opening/closing and extracting symbol
+ * information from a DLL, respectively.
*
- * Most of this class came from the original ACE_DLL class.
- * ACE_DLL is now just an interface that passed all it's calls
- * either directly or via ACE_DLL_Manager to this class for
- * execution.
+ * Most of this class came from the original ACE_DLL class. ACE_DLL
+ * is now just an interface that passed all it's calls either directly
+ * or via ACE_DLL_Manager to this class for execution.
*
*/
class ACE_Export ACE_DLL_Handle
diff --git a/ACE/ace/Dynamic_Service_Base.cpp b/ACE/ace/Dynamic_Service_Base.cpp
index b6977d460ae..e93dde6e905 100644
--- a/ACE/ace/Dynamic_Service_Base.cpp
+++ b/ACE/ace/Dynamic_Service_Base.cpp
@@ -35,15 +35,6 @@ ACE_Dynamic_Service_Base::instance (const ACE_TCHAR *name, bool no_global)
return instance (ACE_Service_Config::current (), name, no_global);
}
-
-void *
-ACE_Dynamic_Service_Base::instance (const ACE_TCHAR *name)
-{
- ACE_TRACE ("ACE_Dynamic_Service_Base::instance");
- return instance (ACE_Service_Config::current (), name, false);
-}
-
-
// Find a service registration
const ACE_Service_Type *
@@ -107,15 +98,4 @@ ACE_Dynamic_Service_Base::instance (const ACE_Service_Gestalt* repo,
return obj;
}
-
-// Get the instance using <name> for specific configuration repository.
-
-void *
-ACE_Dynamic_Service_Base::instance (const ACE_Service_Gestalt* repo,
- const ACE_TCHAR *name)
-{
- return instance (repo, name, false);
-}
-
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Dynamic_Service_Base.h b/ACE/ace/Dynamic_Service_Base.h
index c36337a5de2..7a039a1a6b2 100644
--- a/ACE/ace/Dynamic_Service_Base.h
+++ b/ACE/ace/Dynamic_Service_Base.h
@@ -43,20 +43,13 @@ public:
void dump (void) const;
protected:
- /// Return instance using @a name to search the (default) Service_Repository.
- static void* instance (const ACE_TCHAR *name);
-
/// Perform the default repo search, but optionally skip searching the global
/// repo.
- static void* instance (const ACE_TCHAR *name, bool no_global);
-
- /// Return instance using @a name to search the specific @a repo instance.
- static void* instance (const ACE_Service_Gestalt* repo,
- const ACE_TCHAR *name);
+ static void* instance (const ACE_TCHAR *name, bool no_global = false);
static void* instance (const ACE_Service_Gestalt* repo,
const ACE_TCHAR *name,
- bool no_global);
+ bool no_global = false);
/// No need to create, or assign instances of this class
ACE_Dynamic_Service_Base (void);
diff --git a/ACE/ace/Get_Opt.cpp b/ACE/ace/Get_Opt.cpp
index 7c8175f5575..e13f5c3376c 100644
--- a/ACE/ace/Get_Opt.cpp
+++ b/ACE/ace/Get_Opt.cpp
@@ -167,7 +167,7 @@ ACE_Get_Opt::~ACE_Get_Opt (void)
ACE_Get_Opt_Long_Option *option = 0;
for (i = 0; i < size; ++i)
{
- int retval = this->long_opts_.get (option, i);
+ int retval = this->long_opts_.get (option, i);
if (retval != 0)
{
// Should never happen.
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp
index 64b251fdcdb..1f80d4b5589 100644
--- a/ACE/ace/INET_Addr.cpp
+++ b/ACE/ace/INET_Addr.cpp
@@ -464,7 +464,6 @@ ACE_INET_Addr::set (const char port_name[],
int const port_number = get_port_number_from_name (port_name, protocol);
if (port_number == -1)
{
- ACE_UNUSED_ARG (host_name);
ACE_NOTSUP_RETURN (-1);
}
@@ -491,7 +490,6 @@ ACE_INET_Addr::set (const char port_name[],
int const port_number = get_port_number_from_name (port_name, protocol);
if (port_number == -1)
{
- ACE_UNUSED_ARG (inet_address);
ACE_NOTSUP_RETURN (-1);
}
@@ -733,7 +731,7 @@ ACE_INET_Addr::get_host_name (char hostname[],
int result;
if (len > 1)
{
- result = get_host_name_i (hostname,len);
+ result = this->get_host_name_i (hostname,len);
if (result < 0)
{
if (result == -2)
diff --git a/ACE/ace/Log_Msg.cpp b/ACE/ace/Log_Msg.cpp
index 862bdf16cad..727c82fd040 100644
--- a/ACE/ace/Log_Msg.cpp
+++ b/ACE/ace/Log_Msg.cpp
@@ -657,9 +657,9 @@ ACE_Log_Msg::ACE_Log_Msg (void)
ostream_ (0),
msg_callback_ (0),
trace_depth_ (0),
- trace_active_ (0),
- tracing_enabled_ (1), // On by default?
- delete_ostream_(0),
+ trace_active_ (false),
+ tracing_enabled_ (true), // On by default?
+ delete_ostream_(false),
thr_desc_ (0),
priority_mask_ (default_priority_mask_),
timestamp_ (0)
@@ -751,7 +751,7 @@ ACE_Log_Msg::~ACE_Log_Msg (void)
//
// do we need to close and clean up?
//
- if (this->delete_ostream_ == 1)
+ if (this->delete_ostream_)
#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
{
ACE_OS::fclose (this->ostream_);
@@ -2118,7 +2118,7 @@ ACE_Log_Msg::log (ACE_Log_Record &log_record,
if (ACE_BIT_DISABLED (ACE_Log_Msg::flags_,
ACE_Log_Msg::SILENT))
{
- int tracing = this->tracing_enabled ();
+ bool tracing = this->tracing_enabled ();
this->stop_tracing ();
#if !defined (ACE_WIN32)
@@ -2388,7 +2388,7 @@ ACE_Log_Msg::msg_backend (void)
}
void
-ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m, int delete_ostream)
+ACE_Log_Msg::msg_ostream (ACE_OSTREAM_TYPE *m, bool delete_ostream)
{
if (this->ostream_ == m)
return;
diff --git a/ACE/ace/Log_Msg.h b/ACE/ace/Log_Msg.h
index 49a0bd19553..d99a7f71dd8 100644
--- a/ACE/ace/Log_Msg.h
+++ b/ACE/ace/Log_Msg.h
@@ -315,11 +315,11 @@ public:
void msg_ostream (ACE_OSTREAM_TYPE *);
/**
- * delete_stream == 1, forces Log_Msg.h to delete the stream in
+ * delete_stream == true, forces Log_Msg.h to delete the stream in
* its own ~dtor (assumes control of the stream)
* use only with proper ostream (eg: fstream), not (cout, cerr)
*/
- void msg_ostream (ACE_OSTREAM_TYPE *, int delete_ostream);
+ void msg_ostream (ACE_OSTREAM_TYPE *, bool delete_ostream);
/// Get the ostream that is used to print error messages.
ACE_OSTREAM_TYPE *msg_ostream (void) const;
@@ -359,10 +359,10 @@ public:
void trace_depth (int);
/// Set trace active status.
- int trace_active (void) const;
+ bool trace_active (void) const;
/// Get trace active status.
- void trace_active (int value);
+ void trace_active (bool value);
/// Get the TSS thread descriptor.
ACE_Thread_Descriptor *thr_desc (void) const;
@@ -402,7 +402,7 @@ public:
void start_tracing (void);
/// Query tracing status on a per-thread basis...
- int tracing_enabled (void) const;
+ bool tracing_enabled (void) const;
typedef enum
{
@@ -599,13 +599,13 @@ private:
int trace_depth_;
/// Are we already within an ACE_Trace constructor call?
- int trace_active_;
+ bool trace_active_;
/// Are we allowing tracing in this thread?
- int tracing_enabled_;
+ bool tracing_enabled_;
/// Are we deleting this ostream?
- int delete_ostream_;
+ bool delete_ostream_;
/**
* If we're running in the context of an ACE_Thread_Manager this
diff --git a/ACE/ace/Log_Msg.inl b/ACE/ace/Log_Msg.inl
index 1cb2f134265..677a6856d8f 100644
--- a/ACE/ace/Log_Msg.inl
+++ b/ACE/ace/Log_Msg.inl
@@ -110,7 +110,7 @@ ACE_Log_Msg::trace_depth (int depth)
}
ACE_INLINE
-int
+bool
ACE_Log_Msg::trace_active (void) const
{
return this->trace_active_;
@@ -118,7 +118,7 @@ ACE_Log_Msg::trace_active (void) const
ACE_INLINE
void
-ACE_Log_Msg::trace_active (int value)
+ACE_Log_Msg::trace_active (bool value)
{
this->trace_active_ = value;
}
@@ -135,7 +135,7 @@ ACE_INLINE
void
ACE_Log_Msg::start_tracing (void)
{
- this->tracing_enabled_ = 1;
+ this->tracing_enabled_ = true;
}
/// Disable the tracing facility on a per-thread basis.
@@ -143,11 +143,11 @@ ACE_INLINE
void
ACE_Log_Msg::stop_tracing (void)
{
- this->tracing_enabled_ = 0;
+ this->tracing_enabled_ = false;
}
ACE_INLINE
-int
+bool
ACE_Log_Msg::tracing_enabled (void) const
{
return this->tracing_enabled_;
diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp
index f6e78d2ad93..eb56559be82 100644
--- a/ACE/ace/OS_NS_Thread.cpp
+++ b/ACE/ace/OS_NS_Thread.cpp
@@ -109,7 +109,7 @@ ACE_TSS_Emulation::tss_destructor_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX]
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
-int ACE_TSS_Emulation::key_created_ = 0;
+bool ACE_TSS_Emulation::key_created_ = false;
ACE_OS_thread_key_t ACE_TSS_Emulation::native_tss_key_;
@@ -139,12 +139,12 @@ ACE_TSS_Emulation::tss_base (void* ts_storage[], u_int *ts_created)
// TSS Singleton implementation.
// Create the one native TSS key, if necessary.
- if (key_created_ == 0)
+ if (!key_created_)
{
// Double-checked lock . . .
ACE_TSS_BASE_GUARD
- if (key_created_ == 0)
+ if (!key_created_)
{
ACE_NO_HEAP_CHECK;
if (ACE_OS::thr_keycreate_native (&native_tss_key_,
@@ -153,7 +153,7 @@ ACE_TSS_Emulation::tss_base (void* ts_storage[], u_int *ts_created)
ACE_ASSERT (0);
return 0; // Major problems, this should *never* happen!
}
- key_created_ = 1;
+ key_created_ = true;
}
}
@@ -168,8 +168,7 @@ ACE_TSS_Emulation::tss_base (void* ts_storage[], u_int *ts_created)
}
// Check to see if this is the first time in for this thread.
- // This block can also be entered after a fork () in the child process,
- // at least on Pthreads Draft 4 platforms.
+ // This block can also be entered after a fork () in the child process.
if (old_ts_storage == 0)
{
if (ts_created)
@@ -1050,9 +1049,8 @@ ACE_TSS_Cleanup::tss_keys ()
}
}
- ACE_TSS_Keys *ts_keys = 0;
- if (ACE_OS::thr_getspecific (in_use_,
- reinterpret_cast <void **> (&ts_keys)) == -1)
+ void *ts_keys = 0;
+ if (ACE_OS::thr_getspecific (in_use_, &ts_keys) == -1)
{
ACE_ASSERT (false);
return 0; // This should not happen!
@@ -1065,16 +1063,15 @@ ACE_TSS_Cleanup::tss_keys ()
0);
// Store the dynamically allocated pointer in thread-specific
// storage.
- if (ACE_OS::thr_setspecific (in_use_,
- reinterpret_cast <void *> (ts_keys)) == -1)
+ if (ACE_OS::thr_setspecific (in_use_, ts_keys) == -1)
{
ACE_ASSERT (false);
- delete ts_keys;
+ delete reinterpret_cast <ACE_TSS_Keys*> (ts_keys);
return 0; // Major problems, this should *never* happen!
}
}
- return ts_keys;
+ return reinterpret_cast <ACE_TSS_Keys*>(ts_keys);
}
#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */
@@ -1152,8 +1149,7 @@ ACE_OS::cleanup_tss (const u_int main_thread)
// @@ The following functions could be inlined if i could figure where
// to put it among the #ifdefs!
int
-ACE_OS::condattr_init (ACE_condattr_t &attributes,
- int type)
+ACE_OS::condattr_init (ACE_condattr_t &attributes, int type)
{
attributes.type = type;
return 0;
@@ -1812,49 +1808,33 @@ ACE_OS::mutex_init (ACE_mutex_t *m,
// wasn't originally set.
if (attributes == &l_attributes)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_mutexattr_create (attributes) == 0)
-# elif defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)
if (ACE_ADAPT_RETVAL (::pthread_mutexattr_init (attributes), result) == 0)
-# else /* draft 6 */
- if (::pthread_mutexattr_init (attributes) == 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-{
- result = 0;
- attr_init = 1; // we have initialized these attributes
-}
+ {
+ result = 0;
+ attr_init = 1; // we have initialized these attributes
+ }
else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
+ {
+ result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
+ }
}
if (result == 0 && lock_scope != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)
# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_MUTEXATTR_PSHARED)
(void) ACE_ADAPT_RETVAL (::pthread_mutexattr_setpshared (attributes,
lock_scope),
result);
# endif /* _POSIX_THREAD_PROCESS_SHARED && !ACE_LACKS_MUTEXATTR_PSHARED */
-# else /* Pthreads draft 6 */
-# if !defined (ACE_LACKS_MUTEXATTR_PSHARED)
- if (::pthread_mutexattr_setpshared (attributes, lock_scope) != 0)
- result = -1;
-# endif /* ACE_LACKS_MUTEXATTR_PSHARED */
-# endif /* ACE_HAS_PTHREADS_DRAFT7 || ACE_HAS_PTHREADS_STD */
}
if (result == 0 && lock_type != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP)
- if (::pthread_mutexattr_setkind_np (attributes, lock_type) != 0)
- result = -1;
-# endif /* ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */
-# elif defined (ACE_HAS_RECURSIVE_MUTEXES)
+# if defined (ACE_HAS_RECURSIVE_MUTEXES)
(void) ACE_ADAPT_RETVAL (::pthread_mutexattr_settype (attributes,
lock_type),
result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
+# endif /* ACE_HAS_RECURSIVE_MUTEXES */
}
if (result == 0)
@@ -1869,13 +1849,7 @@ ACE_OS::mutex_init (ACE_mutex_t *m,
*/
ACE_OS::memset (m, 0, sizeof (*m));
# endif
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_mutex_init (m, *attributes) == 0)
-# elif defined (ACE_HAS_PTHREADS_DRAFT7) || defined (ACE_HAS_PTHREADS_STD)
if (ACE_ADAPT_RETVAL (::pthread_mutex_init (m, attributes), result) == 0)
-# else
- if (::pthread_mutex_init (m, attributes) == 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
result = 0;
else
result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
@@ -1884,11 +1858,7 @@ ACE_OS::mutex_init (ACE_mutex_t *m,
// Only do the deletions if the <attributes> parameter wasn't
// originally set.
if (attributes == &l_attributes && attr_init)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_mutexattr_delete (&l_attributes);
-# else
- ::pthread_mutexattr_destroy (&l_attributes);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
+ ::pthread_mutexattr_destroy (&l_attributes);
return result;
# elif defined (ACE_HAS_STHREADS)
@@ -1967,13 +1937,9 @@ ACE_OS::mutex_destroy (ACE_mutex_t *m)
ACE_OS_TRACE ("ACE_OS::mutex_destroy");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (::pthread_mutex_destroy (m), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_mutex_destroy (m),
result), int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6*/
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_destroy (m), result), int, -1);
@@ -2052,13 +2018,9 @@ ACE_OS::mutex_lock (ACE_mutex_t *m)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
// Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (pthread_mutex_lock (m), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_lock (m), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_lock (m), result), int, -1);
@@ -2231,20 +2193,9 @@ ACE_OS::mutex_trylock (ACE_mutex_t *m)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
// Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- int status = pthread_mutex_trylock (m);
- if (status == 1)
- status = 0;
- else if (status == 0) {
- status = -1;
- errno = EBUSY;
- }
- return status;
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_trylock (m), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_trylock (m), result), int, -1);
@@ -2344,13 +2295,9 @@ ACE_OS::mutex_unlock (ACE_mutex_t *m)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
// Note, don't use "::" here since the following call is often a macro.
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6))
- ACE_OSCALL_RETURN (pthread_mutex_unlock (m), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_unlock (m), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_unlock (m), result), int, -1);
@@ -3547,18 +3494,12 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params,
{
ACE_thread_t thr_id = ACE_OS::thr_self ();
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- return (::pthread_setscheduler (thr_id,
- sched_params.policy (),
- sched_params.priority()) == -1 ? -1 : 0);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (thr_id,
sched_params.policy (),
&param),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
}
# if defined (sun)
// We need to be able to set LWP priorities on Suns, even without
@@ -3821,7 +3762,8 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
long priority,
void *stack,
size_t stacksize,
- ACE_Base_Thread_Adapter *thread_adapter)
+ ACE_Base_Thread_Adapter *thread_adapter,
+ const char** thr_name)
{
ACE_OS_TRACE ("ACE_OS::thr_create");
@@ -3837,7 +3779,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# define ACE_THREAD_ARGUMENT thread_args
#endif /* ! defined (ACE_NO_THREAD_ADAPTER) */
-
ACE_Base_Thread_Adapter *thread_args = 0;
if (thread_adapter == 0)
#if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
@@ -3881,7 +3822,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
thr_handle = &tmp_handle;
# if defined (ACE_HAS_PTHREADS)
-
int result;
# if defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600) && (ACE_VXWORKS <= 0x620)
/* Tests show that VxWorks 6.x pthread lib does not only
@@ -3892,12 +3832,8 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# else
pthread_attr_t attr;
# endif
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (ACE_ADAPT_RETVAL(::pthread_attr_create (&attr), result) != 0)
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
if (ACE_ADAPT_RETVAL(::pthread_attr_init(&attr), result) != 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
+ return -1;
if (stacksize != 0)
{
@@ -3909,28 +3845,20 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# endif /* PTHREAD_STACK_MIN */
# if !defined (ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- if (::pthread_attr_setstacksize (&attr, size) != 0)
+# if !defined (ACE_LACKS_PTHREAD_ATTR_SETSTACK)
+ int result;
+ if (stack != 0)
+ result = ACE_ADAPT_RETVAL (pthread_attr_setstack (&attr, stack, size), result);
+ else
+ result = ACE_ADAPT_RETVAL (pthread_attr_setstacksize (&attr, size), result);
+ if (result == -1)
# else
-# if !defined (ACE_LACKS_PTHREAD_ATTR_SETSTACK)
- int result;
- if (stack != 0)
- result = ACE_ADAPT_RETVAL (pthread_attr_setstack (&attr, stack, size), result);
- else
- result = ACE_ADAPT_RETVAL (pthread_attr_setstacksize (&attr, size), result);
- if (result == -1)
-# else
- if (ACE_ADAPT_RETVAL (pthread_attr_setstacksize (&attr, size), result) == -1)
-# endif /* !ACE_LACKS_PTHREAD_ATTR_SETSTACK */
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
+ if (ACE_ADAPT_RETVAL (pthread_attr_setstacksize (&attr, size), result) == -1)
+# endif /* !ACE_LACKS_PTHREAD_ATTR_SETSTACK */
+ {
+ ::pthread_attr_destroy (&attr);
+ return -1;
+ }
# else
ACE_UNUSED_ARG (size);
# endif /* !ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE */
@@ -3943,11 +3871,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
{
if (ACE_ADAPT_RETVAL(::pthread_attr_setstackaddr (&attr, stack), result) != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
@@ -3969,24 +3893,12 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (ACE_BIT_ENABLED (flags, THR_DETACHED))
dstate = PTHREAD_CREATE_DETACHED;
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (::pthread_attr_setdetach_np (&attr, dstate) != 0)
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
-# if defined (ACE_HAS_PTHREADS_DRAFT6)
- if (::pthread_attr_setdetachstate (&attr, &dstate) != 0)
-# else
- if (ACE_ADAPT_RETVAL(::pthread_attr_setdetachstate (&attr, dstate),
- result) != 0)
-# endif /* ACE_HAS_PTHREADS_DRAFT6 */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- {
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
- ::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- return -1;
- }
+ if (ACE_ADAPT_RETVAL(::pthread_attr_setdetachstate (&attr, dstate),
+ result) != 0)
+ {
+ ::pthread_attr_destroy (&attr);
+ return -1;
+ }
}
// Note: if ACE_LACKS_SETDETACH and THR_DETACHED is enabled, we
@@ -4044,27 +3956,17 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# endif /* ACE_HAS_ONLY_SCHED_OTHER */
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- result = ::pthread_attr_setsched (&attr, spolicy);
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- result = ::pthread_attr_setschedpolicy (&attr, spolicy);
-# else /* draft 7 or std */
(void) ACE_ADAPT_RETVAL(::pthread_attr_setschedpolicy (&attr, spolicy),
result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
if (result != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
// *** Set Priority (use reasonable default priorities)
-# if defined(ACE_HAS_PTHREADS_STD)
+# if defined(ACE_HAS_PTHREADS)
// If we wish to explicitly set a scheduling policy, we also
// have to specify a priority. We choose a "middle" priority as
// default. Maybe this is also necessary on other POSIX'ish
@@ -4081,7 +3983,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
else // THR_SCHED_DEFAULT
priority = ACE_THR_PRI_OTHER_DEF;
}
-# endif /* ACE_HAS_PTHREADS_STD */
+# endif /* ACE_HAS_PTHREADS */
if (priority != ACE_DEFAULT_THREAD_PRIORITY)
{
struct sched_param sparam;
@@ -4090,10 +3992,10 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# if defined (ACE_HAS_IRIX62_THREADS)
sparam.sched_priority = ACE_MIN (priority,
(long) PTHREAD_MAX_PRIORITY);
-# elif defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS_STD)
+# elif defined (PTHREAD_MAX_PRIORITY) && !defined(ACE_HAS_PTHREADS)
/* For MIT pthreads... */
sparam.prio = ACE_MIN (priority, PTHREAD_MAX_PRIORITY);
-# elif defined(ACE_HAS_PTHREADS_STD) && !defined (ACE_HAS_STHREADS)
+# elif defined(ACE_HAS_PTHREADS) && !defined (ACE_HAS_STHREADS)
// The following code forces priority into range.
if (ACE_BIT_ENABLED (flags, THR_SCHED_FIFO))
sparam.sched_priority =
@@ -4122,20 +4024,11 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (priority > 0)
# endif /* sun && ACE_HAS_ONLY_SCHED_OTHER */
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- result = ::pthread_attr_setprio (&attr,
- sparam.sched_priority);
-# else /* this is draft 7 or std */
(void) ACE_ADAPT_RETVAL(::pthread_attr_setschedparam (&attr, &sparam),
result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
if (result != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
@@ -4146,20 +4039,12 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (ACE_BIT_ENABLED (flags, THR_INHERIT_SCHED)
|| ACE_BIT_ENABLED (flags, THR_EXPLICIT_SCHED))
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int sched = PTHREAD_DEFAULT_SCHED;
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
int sched = PTHREAD_EXPLICIT_SCHED;
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
if (ACE_BIT_ENABLED (flags, THR_INHERIT_SCHED))
sched = PTHREAD_INHERIT_SCHED;
if (ACE_ADAPT_RETVAL(::pthread_attr_setinheritsched (&attr, sched), result) != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
@@ -4167,6 +4052,20 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
ACE_UNUSED_ARG (priority);
# endif /* ACE_LACKS_SETSCHED */
+ // *** Set pthread name
+# if defined (ACE_HAS_PTHREAD_ATTR_SETNAME)
+ if (thr_name && *thr_name)
+ {
+ if (ACE_ADAPT_RETVAL(::pthread_attr_setname (&attr, const_cast<char*>(*thr_name)), result) != 0)
+ {
+ ::pthread_attr_destroy (&attr);
+ return -1;
+ }
+ }
+#else
+ ACE_UNUSED_ARG (thr_name);
+# endif
+
// *** Set Scope
# if !defined (ACE_LACKS_THREAD_PROCESS_SCOPING)
if (ACE_BIT_ENABLED (flags, THR_SCOPE_SYSTEM)
@@ -4185,11 +4084,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (ACE_ADAPT_RETVAL(::pthread_attr_setscope (&attr, scope), result) != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
@@ -4201,11 +4096,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (ACE_ADAPT_RETVAL(::pthread_attr_setcreatesuspend_np(&attr), result) != 0)
{
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ::pthread_attr_delete (&attr);
-# else /* ACE_HAS_PTHREADS_DRAFT4 */
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
return -1;
}
}
@@ -4241,29 +4132,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
# endif /* ! ACE_LACKS_THR_CONCURRENCY_FUNCS */
}
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- ACE_OSCALL (::pthread_create (thr_id, attr,
- thread_args->entry_point (),
- thread_args),
- int, -1, result);
-
-# if defined (ACE_LACKS_SETDETACH)
- if (ACE_BIT_ENABLED (flags, THR_DETACHED))
- {
- ::pthread_detach (thr_id);
- }
-# endif /* ACE_LACKS_SETDETACH */
-
- ::pthread_attr_delete (&attr);
-
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL (::pthread_create (thr_id, &attr,
- thread_args->entry_point (),
- thread_args),
- int, -1, result);
- ::pthread_attr_destroy (&attr);
-
-# else /* this is draft 7 or std */
ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_create (thr_id,
&attr,
thread_args->entry_point (),
@@ -4271,7 +4139,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
result),
int, -1, result);
::pthread_attr_destroy (&attr);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
// This is a SunOS or POSIX implementation of pthreads, where we
// assume that ACE_thread_t and ACE_hthread_t are the same. If this
@@ -4396,6 +4263,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
auto_thread_args.release ();
return result;
# elif defined (ACE_HAS_WTHREADS)
+ ACE_UNUSED_ARG (thr_name);
ACE_UNUSED_ARG (stack);
# if defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
if (ACE_BIT_ENABLED (flags, THR_USE_AFX))
@@ -4491,9 +4359,6 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
if (flags == 0) flags = VX_FP_TASK;
if (stacksize == 0) stacksize = 20000;
- const bool thr_h_provided =
- thr_handle && *thr_handle && (*thr_handle)[0] != ACE_THR_ID_ALLOCATED;
-
ACE_thread_t tid;
# if 0 /* Don't support setting of stack, because it doesn't seem to work. */
if (stack == 0)
@@ -4504,7 +4369,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
// The call below to ::taskSpawn () causes VxWorks to assign a
// unique task name of the form: "t" + an integer, because the
// first argument is 0.
- tid = ::taskSpawn (thr_h_provided ? *thr_handle : 0,
+ tid = ::taskSpawn (thr_name && *thr_name ? const_cast <char*> (*thr_name) : 0,
priority,
(int) flags,
(int) stacksize,
@@ -4524,7 +4389,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
// The TID is defined to be the address of the TCB.
int status = ::taskInit (tcb,
- thr_id_provided ? *thr_id : 0,
+ thr_name && *thr_name ? const_cast <char*>(*thr_name) : 0,
priority,
(int) flags,
(char *) stack + sizeof (WIND_TCB),
@@ -4539,7 +4404,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
status = ::taskActivate ((ACE_hthread_t) tcb);
}
- tid = status == OK ? (ACE_thread_t) tcb : ERROR;
+ tid = status == OK ? (ACE_thread_t) tcb : ERROR;
}
# endif /* 0 */
@@ -4547,29 +4412,15 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
return -1;
else
{
- if (!thr_h_provided && thr_handle)
- {
- if (*thr_handle && (*thr_handle)[0] == ACE_THR_ID_ALLOCATED)
- // *thr_id was allocated by the Thread_Manager. ::taskTcb
- // (int tid) returns the address of the WIND_TCB (task
- // control block). According to the ::taskSpawn()
- // documentation, the name of the new task is stored at
- // pStackBase, but is that of the current task? If so, it
- // might be a bit quicker than this extraction of the tcb
- // . . .
- ACE_OS::strsncpy (*thr_handle + 1, ::taskName (tid), 10);
- else
- // *thr_id was not allocated by the Thread_Manager.
- // Pass back the task name in the location pointed to
- // by thr_id.
- *thr_handle = ::taskName (tid);
- }
- // else if the thr_id was provided, there's no need to overwrite
- // it with the same value (string). If thr_id is 0, then we can't
- // pass the task name back.
if (thr_id)
*thr_id = tid;
+ if (thr_handle)
+ *thr_handle = tid;
+
+ if (thr_name && !(*thr_name))
+ *thr_name = ::taskName (tid);
+
auto_thread_args.release ();
return 0;
}
@@ -4584,6 +4435,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
ACE_UNUSED_ARG (priority);
ACE_UNUSED_ARG (stack);
ACE_UNUSED_ARG (stacksize);
+ ACE_UNUSED_ARG (thr_name);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_THREADS */
}
@@ -4674,17 +4526,7 @@ ACE_OS::thr_join (ACE_hthread_t thr_handle,
}
int retval = ESRCH;
- ACE_hthread_t current;
- ACE_OS::thr_self (current);
- ACE_thread_t tid;
- // Skip over the ID-allocated marker, if present.
- thr_handle += thr_handle[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- ACE_OSCALL (::taskNameToId (thr_handle), int, ERROR, tid);
-
- // If we can't convert task name to id we assume the thread has already
- // exited
- if (tid == ERROR)
- return 0;
+ ACE_thread_t current = ACE_OS::thr_self ();
// Make sure we are not joining ourself
if (ACE_OS::thr_cmp (thr_handle, current))
@@ -4698,7 +4540,7 @@ ACE_OS::thr_join (ACE_hthread_t thr_handle,
retval = 0;
// Verify that the task id still exists
- while (taskIdVerify (tid) == OK)
+ while (taskIdVerify (thr_handle) == OK)
{
// Wait a bit to see if the task is still active.
ACE_OS::sleep (ACE_THR_JOIN_DELAY);
@@ -4723,7 +4565,7 @@ ACE_OS::thr_join (ACE_thread_t waiter_id,
ACE_THR_FUNC_RETURN *status)
{
thr_id = 0;
- return ACE_OS::thr_join ( ::taskName(waiter_id), status);
+ return ACE_OS::thr_join (waiter_id, status);
}
#endif /* ACE_HAS_VXTHREADS */
@@ -4860,21 +4702,10 @@ ACE_OS::thr_keycreate_native (ACE_OS_thread_key_t *key,
// ACE_OS_TRACE ("ACE_OS::thr_keycreate_native");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (ACE_HAS_STDARG_THR_DEST)
- ACE_OSCALL_RETURN (::pthread_keycreate (key, (void (*)(...)) dest), int, -1);
-# else /* ! ACE_HAS_STDARG_THR_DEST */
- ACE_OSCALL_RETURN (::pthread_keycreate (key, dest), int, -1);
-# endif /* ! ACE_HAS_STDARG_THR_DEST */
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_key_create (key, dest), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_key_create (key, dest),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_keycreate (key, dest),
@@ -4964,10 +4795,16 @@ ACE_OS::thr_keyfree_native (ACE_OS_thread_key_t key)
{
ACE_OS_TRACE ("ACE_OS::thr_keyfree_native");
# if defined (ACE_HAS_THREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG (key);
- ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_HAS_PTHREADS)
+# if defined (ACE_HAS_BROKEN_THREAD_KEYFREE) || defined (ACE_HAS_THR_KEYDELETE)
+ // For some systems, e.g. LynxOS, we need to ensure that
+ // any registered thread destructor action for this slot
+ // is now disabled. Otherwise in the event of a dynamic library
+ // unload of libACE, by a program not linked with libACE,
+ // ACE_TSS_cleanup will be invoked again at the thread exit
+ // after libACE has been actually been unmapped from memory.
+ (void) ACE_OS::thr_setspecific (key, 0);
+# endif /* ACE_HAS_BROKEN_THREAD_KEYFREE */
+# if defined (ACE_HAS_PTHREADS)
return ::pthread_key_delete (key);
# elif defined (ACE_HAS_THR_KEYDELETE)
return ::thr_keydelete (key);
@@ -5069,15 +4906,10 @@ ACE_OS::thr_setspecific_native (ACE_OS_thread_key_t key, void *data)
// ACE_OS_TRACE ("ACE_OS::thr_setspecific_native");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (::pthread_setspecific (key, data), int, -1);
-# else
- int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setspecific (key, data),
- result),
- int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-
+ int result;
+ ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setspecific (key, data),
+ result),
+ int, -1);
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setspecific (key, data), result), int, -1);
@@ -5262,7 +5094,7 @@ spa (FUNCPTR entry, ...)
// The hard-coded options are what ::sp () uses, except for the
// larger stack size (instead of ::sp ()'s 20000).
- const int ret = ::taskSpawn (argv[0], // task name
+ int const ret = ::taskSpawn (argv[0], // task name
100, // task priority
VX_FP_TASK, // task options
ACE_NEEDS_HUGE_THREAD_STACKSIZE, // stack size
@@ -5351,8 +5183,8 @@ add_to_argv (int& argc, char** argv, int max_args, char* string)
int
spae (FUNCPTR entry, ...)
{
- static const int WINDSH_ARGS = 10;
- static const int ACE_MAX_ARGS = 128;
+ static int const WINDSH_ARGS = 10;
+ static int const ACE_MAX_ARGS = 128;
static char* argv[ACE_MAX_ARGS] = { "ace_main", 0 };
va_list pvar;
int argc = 1;
@@ -5377,7 +5209,7 @@ spae (FUNCPTR entry, ...)
// The hard-coded options are what ::sp () uses, except for the
// larger stack size (instead of ::sp ()'s 20000).
- const int ret = ::taskSpawn (argv[0], // task name
+ int const ret = ::taskSpawn (argv[0], // task name
100, // task priority
VX_FP_TASK, // task options
ACE_NEEDS_HUGE_THREAD_STACKSIZE, // stack size
@@ -5405,8 +5237,8 @@ spae (FUNCPTR entry, ...)
int
spaef (FUNCPTR entry, ...)
{
- static const int WINDSH_ARGS = 10;
- static const int ACE_MAX_ARGS = 128;
+ static int const WINDSH_ARGS = 10;
+ static int const ACE_MAX_ARGS = 128;
static char* argv[ACE_MAX_ARGS] = { "ace_main", 0 };
va_list pvar;
int argc = 1;
@@ -5457,7 +5289,7 @@ _vx_call_entry(FUNCPTR entry, int argc, char* argv[])
int
vx_execae (FUNCPTR entry, char* arg, int prio, int opt, int stacksz, ...)
{
- static const int ACE_MAX_ARGS = 128;
+ static int const ACE_MAX_ARGS = 128;
static char* argv[ACE_MAX_ARGS] = { "ace_main", 0 };
int argc = 1;
@@ -5473,7 +5305,7 @@ vx_execae (FUNCPTR entry, char* arg, int prio, int opt, int stacksz, ...)
// The hard-coded options are what ::sp () uses, except for the
// larger stack size (instead of ::sp ()'s 20000).
- const int ret = ::taskSpawn (argv[0], // task name
+ int const ret = ::taskSpawn (argv[0], // task name
prio==0 ? 100 : prio, // task priority
opt==0 ? VX_FP_TASK : opt, // task options
stacksz==0 ? ACE_NEEDS_HUGE_THREAD_STACKSIZE : stacksz, // stack size
@@ -5483,6 +5315,9 @@ vx_execae (FUNCPTR entry, char* arg, int prio, int opt, int stacksz, ...)
(int) argv, // second argument to main ()
0, 0, 0, 0, 0, 0, 0);
+ if (ret == ERROR)
+ return 255;
+
while( ret > 0 && ::taskIdVerify (ret) != ERROR )
::taskDelay (3 * ::sysClkRateGet ());
diff --git a/ACE/ace/OS_NS_Thread.h b/ACE/ace/OS_NS_Thread.h
index 62853a0eedf..69ccf83bd00 100644
--- a/ACE/ace/OS_NS_Thread.h
+++ b/ACE/ace/OS_NS_Thread.h
@@ -225,7 +225,7 @@ typedef struct
} ACE_sema_t;
# endif /* !ACE_HAS_POSIX_SEM */
typedef int ACE_thread_t;
-typedef char * ACE_hthread_t;
+typedef int ACE_hthread_t;
// Key type: the ACE TSS emulation requires the key type be unsigned,
// for efficiency. (Current POSIX and Solaris TSS implementations also
// use u_int, so the ACE TSS emulation is compatible with them.)
@@ -240,10 +240,6 @@ typedef u_int ACE_OS_thread_key_t;
ACE_END_VERSIONED_NAMESPACE_DECL
- // Marker for ACE_Thread_Manager to indicate that it allocated
- // an ACE_thread_t. It is placed at the beginning of the ID.
-# define ACE_THR_ID_ALLOCATED '\022'
-
# elif defined (ACE_HAS_WTHREADS)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -867,7 +863,7 @@ private:
static ACE_OS_thread_key_t native_tss_key_;
// Used to indicate if native tss key has been allocated
- static int key_created_;
+ static bool key_created_;
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
};
# endif /* ACE_HAS_TSS_EMULATION */
@@ -1512,9 +1508,9 @@ namespace ACE_OS {
/*
* Creates a new thread having @a flags attributes and running @a func
- * with <args> (if <thread_adapter> is non-0 then @a func and <args>
- * are ignored and are obtained from <thread_adapter>). <thr_id>
- * and <t_handle> are set to the thread's ID and handle (?),
+ * with @a args (if @a thread_adapter is non-0 then @a func and @a args
+ * are ignored and are obtained from @a thread_adapter). @a thr_id
+ * and @a t_handle are set to the thread's ID and handle (?),
* respectively. The thread runs at @a priority priority (see
* below).
*
@@ -1529,16 +1525,20 @@ namespace ACE_OS {
*
* By default, or if @a priority is set to
* ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- * the given scheduling policy (specified in <flags}>, e.g.,
- * <THR_SCHED_DEFAULT>) is used. This value is calculated
+ * the given scheduling policy (specified in @a flags, e.g.,
+ * @c THR_SCHED_DEFAULT) is used. This value is calculated
* dynamically, and is the median value between the minimum and
* maximum priority values for the given policy. If an explicit
* value is given, it is used. Note that actual priority values are
* EXTREMEMLY implementation-dependent, and are probably best
* avoided.
*
- * Note that <thread_adapter> is always deleted by <thr_create>,
+ * Note that @a thread_adapter is always deleted by @c thr_create,
* therefore it must be allocated with global operator new.
+ *
+ * At the moment for @a thr_name a valid string is passed then this
+ * will be used on VxWorks to set the task name. If we just pass a pointer
+ * the name of the task is returned
*/
extern ACE_Export
int thr_create (ACE_THR_FUNC func,
@@ -1549,7 +1549,8 @@ namespace ACE_OS {
long priority = ACE_DEFAULT_THREAD_PRIORITY,
void *stack = 0,
size_t stacksize = ACE_DEFAULT_THREAD_STACKSIZE,
- ACE_Base_Thread_Adapter *thread_adapter = 0);
+ ACE_Base_Thread_Adapter *thread_adapter = 0,
+ const char** thr_name = 0);
ACE_NAMESPACE_INLINE_FUNCTION
int thr_equal (ACE_thread_t t1,
@@ -1574,7 +1575,7 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
/// for internal use only. Applications should call thr_getspecific
int thr_getspecific_native (ACE_OS_thread_key_t key,
- void **data);
+ void **data);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
ACE_NAMESPACE_INLINE_FUNCTION
@@ -1673,7 +1674,7 @@ namespace ACE_OS {
# endif /* ACE_HAS_THR_C_DEST */
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE)
- /// @internal applications should call thr_keyfree instead
+ /// @internal Applications should call thr_keyfree instead
extern ACE_Export
int thr_keyfree_native (ACE_OS_thread_key_t key);
# endif /* ACE_HAS_THREAD_SPECIFIC_STORAGE */
@@ -1695,6 +1696,9 @@ namespace ACE_OS {
void thr_self (ACE_hthread_t &);
ACE_NAMESPACE_INLINE_FUNCTION
+ const char* thr_name (void);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
int thr_setcancelstate (int new_state,
int *old_state);
diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl
index 4577d300926..d4bba743c56 100644
--- a/ACE/ace/OS_NS_Thread.inl
+++ b/ACE/ace/OS_NS_Thread.inl
@@ -45,7 +45,8 @@ void **&
ACE_TSS_Emulation::tss_base ()
{
# if defined (ACE_HAS_VXTHREADS)
- return (void **&) taskIdCurrent->ACE_VXWORKS_SPARE;
+ int &spare = taskIdCurrent->ACE_VXWORKS_SPARE;
+ return reinterpret_cast <void **&> (spare);
# else
// Uh oh.
ACE_NOTSUP_RETURN (0);
@@ -132,11 +133,7 @@ ACE_OS::condattr_destroy (ACE_condattr_t &attributes)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- pthread_condattr_delete (&attributes);
-# else
pthread_condattr_destroy (&attributes);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# elif defined (ACE_HAS_STHREADS)
attributes.type = 0;
@@ -166,23 +163,11 @@ ACE_OS::condattr_init (ACE_condattr_t &attributes,
ACE_OS::memset (&attributes, 0, sizeof (attributes));
# endif
if (
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- pthread_condattr_create (&attributes) == 0
-# elif defined (ACE_HAS_PTHREADS_STD) || defined (ACE_HAS_PTHREADS_DRAFT7)
ACE_ADAPT_RETVAL (pthread_condattr_init (&attributes), result) == 0
# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)
&& ACE_ADAPT_RETVAL (pthread_condattr_setpshared (&attributes, type),
result) == 0
# endif /* _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_CONDATTR_PSHARED */
-# else /* this is draft 6 */
- pthread_condattr_init (&attributes) == 0
-# if !defined (ACE_LACKS_CONDATTR_PSHARED)
- && pthread_condattr_setpshared (&attributes, type) == 0
-# endif /* ACE_LACKS_CONDATTR_PSHARED */
-# if defined (ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP)
- && pthread_condattr_setkind_np (&attributes, type) == 0
-# endif /* ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
)
result = 0;
else
@@ -214,14 +199,10 @@ ACE_OS::cond_broadcast (ACE_cond_t *cv)
ACE_OS_TRACE ("ACE_OS::cond_broadcast");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (pthread_cond_broadcast (cv), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_broadcast (cv),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_broadcast (cv),
@@ -240,12 +221,8 @@ ACE_OS::cond_destroy (ACE_cond_t *cv)
ACE_OS_TRACE ("ACE_OS::cond_destroy");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (pthread_cond_destroy (cv), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_destroy (cv), result), int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_destroy (cv), result), int, -1);
@@ -279,15 +256,7 @@ ACE_OS::cond_init (ACE_cond_t *cv,
ACE_OS::memset (cv, 0, sizeof (*cv));
# endif
- if (
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- pthread_cond_init (cv, attributes) == 0
-# elif defined (ACE_HAS_PTHREADS_STD) || defined (ACE_HAS_PTHREADS_DRAFT7)
- ACE_ADAPT_RETVAL (pthread_cond_init (cv, &attributes), result) == 0
-# else /* this is draft 6 */
- pthread_cond_init (cv, &attributes) == 0
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
- )
+ if (ACE_ADAPT_RETVAL (pthread_cond_init (cv, &attributes), result) == 0)
result = 0;
else
result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
@@ -335,13 +304,9 @@ ACE_OS::cond_signal (ACE_cond_t *cv)
ACE_OS_TRACE ("ACE_OS::cond_signal");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (pthread_cond_signal (cv), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_signal (cv), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_signal (cv), result), int, -1);
@@ -359,13 +324,9 @@ ACE_OS::cond_wait (ACE_cond_t *cv,
ACE_OS_TRACE ("ACE_OS::cond_wait");
# if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_OSCALL_RETURN (pthread_cond_wait (cv, external_mutex), int, -1);
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cond_wait (cv, external_mutex), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_wait (cv, external_mutex), result),
@@ -393,25 +354,12 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- if (timeout == 0)
- ACE_OSCALL (pthread_cond_wait (cv, external_mutex),
- int, -1, result);
- else
- {
- ACE_OSCALL (pthread_cond_timedwait (cv, external_mutex,
- (ACE_TIMESPEC_PTR) &ts),
- int, -1, result);
- }
-
-# else
ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0
? pthread_cond_wait (cv, external_mutex)
: pthread_cond_timedwait (cv, external_mutex,
(ACE_TIMESPEC_PTR) &ts),
result),
int, -1, result);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6*/
// We need to adjust this to make the POSIX and Solaris return
// values consistent. EAGAIN is from Pthreads DRAFT4 (HP-UX 10.20 and down)
if (result == -1 &&
@@ -743,7 +691,7 @@ ACE_OS::recursive_mutex_lock (ACE_recursive_thread_mutex_t *m)
#if defined (ACE_HAS_RECURSIVE_MUTEXES)
return ACE_OS::thread_mutex_lock (m);
#else
- ACE_thread_t t_id = ACE_OS::thr_self ();
+ ACE_thread_t const t_id = ACE_OS::thr_self ();
int result = 0;
// Acquire the guard.
@@ -2561,10 +2509,7 @@ ACE_OS::sigwait (sigset_t *sset, int *sig)
errno = ::_Psigwait (sset, sig);
return errno == 0 ? *sig : -1;
# else /* ! __Lynx __ && ! (DIGITAL_UNIX && __DECCXX_VER) */
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || (defined (ACE_HAS_PTHREADS_DRAFT6))) || (defined (_UNICOS) && _UNICOS == 9)
- *sig = ::sigwait (sset);
- return *sig;
-# elif defined (CYGWIN32)
+# if defined (CYGWIN32)
// Cygwin has sigwait definition, but it is not implemented
ACE_UNUSED_ARG (sset);
ACE_NOTSUP_RETURN (-1);
@@ -2574,7 +2519,7 @@ ACE_OS::sigwait (sigset_t *sset, int *sig)
# else /* this is draft 7 or std */
errno = ::sigwait (sset, sig);
return errno == 0 ? *sig : -1;
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
+# endif /* CYGWIN32 */
# endif /* ! __Lynx__ && ! (DIGITAL_UNIX && __DECCXX_VER) */
# elif defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (sset);
@@ -2616,26 +2561,10 @@ ACE_OS::thr_cancel (ACE_thread_t thr_id)
ACE_OS_TRACE ("ACE_OS::thr_cancel");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
-# ifdef pthread_cancel
- // If it's a macro we can't say "pthread_cancel"...
- ACE_OSCALL_RETURN (pthread_cancel (thr_id), int, -1);
-# else
- ACE_OSCALL_RETURN (pthread_cancel (thr_id), int, -1);
-# endif /* pthread_cancel */
-# else
int result;
-# ifdef pthread_cancel
- // If it's a macro we can't say "pthread_cancel"...
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cancel (thr_id),
- result),
- int, -1);
-# else
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cancel (thr_id),
- result),
- int, -1);
-# endif /* pthread_cancel */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 */
+ ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_cancel (thr_id),
+ result),
+ int, -1);
# elif defined (ACE_HAS_VXTHREADS)
ACE_OSCALL_RETURN (::taskDelete (thr_id), int, -1);
# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
@@ -2658,20 +2587,6 @@ ACE_OS::thr_cmp (ACE_hthread_t t1, ACE_hthread_t t2)
# else
return pthread_equal (t1, t2);
# endif /* pthread_equal */
-#elif defined (ACE_HAS_VXTHREADS)
- // Guard against the fact that ACE_thread_t is a char* when using VxWorks.
- // Maybe the user passes in an unitialized ACE_thread_t, which is then 0,
- // which causes strcmp to cause an access violation.
- if (!t1 && !t2)
- return 1;
- else if (!t1 || !t2)
- return 0;
- else
- {
- t1 += t1[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- t2 += t2[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- return !ACE_OS::strcmp (t1, t2);
- }
#else /* For STHREADS, WTHREADS, and VXWORKS ... */
// Hum, Do we need to treat WTHREAD differently?
// levine 13 oct 98 % Probably, ACE_hthread_t is a HANDLE.
@@ -2714,15 +2629,7 @@ ACE_OS::thr_continue (ACE_hthread_t target_thread)
else
return 0;
# elif defined (ACE_HAS_VXTHREADS)
- // Skip over the ID-allocated marker, if present.
- target_thread += target_thread[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- ACE_thread_t tid;
- ACE_OSCALL (::taskNameToId (target_thread), int, ERROR, tid);
-
- if (tid == ERROR)
- return -1;
- else
- ACE_OSCALL_RETURN (::taskResume (tid), int, -1);
+ ACE_OSCALL_RETURN (::taskResume (target_thread), int, -1);
# endif /* ACE_HAS_STHREADS */
#else
ACE_UNUSED_ARG (target_thread);
@@ -2756,26 +2663,6 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy)
# if (defined (ACE_HAS_PTHREADS) && \
(!defined (ACE_LACKS_SETSCHED) || defined (ACE_HAS_PTHREAD_SCHEDPARAM)))
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int const result = pthread_getprio (ht_id);
- if (result != -1)
- {
- priority = result;
- return 0;
- }
- else
- return -1;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
-
- pthread_attr_t attr;
- if (pthread_getschedattr (ht_id, &attr) == 0)
- {
- priority = pthread_attr_getprio (&attr);
- return 0;
- }
- return -1;
-# else
-
struct sched_param param;
int result;
@@ -2784,7 +2671,6 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy)
-1, result);
priority = param.sched_priority;
return result;
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getprio (ht_id, &priority), result), int, -1);
@@ -2812,15 +2698,7 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy)
return 0;
# elif defined (ACE_HAS_VXTHREADS)
- // Skip over the ID-allocated marker, if present.
- ht_id += ht_id[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- ACE_thread_t tid;
- ACE_OSCALL (::taskNameToId (ht_id), int, ERROR, tid);
-
- if (tid == ERROR)
- return -1;
- else
- ACE_OSCALL_RETURN (::taskPriorityGet (tid, &priority), int, -1);
+ ACE_OSCALL_RETURN (::taskPriorityGet (ht_id, &priority), int, -1);
# else
ACE_UNUSED_ARG (ht_id);
ACE_UNUSED_ARG (priority);
@@ -2847,12 +2725,8 @@ ACE_OS::thr_getspecific_native (ACE_OS_thread_key_t key, void **data)
{
// ACE_OS_TRACE ("ACE_OS::thr_getspecific_native");
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- return pthread_getspecific (key, data);
-# else /* this is ACE_HAS_PTHREADS_DRAFT7 or STD */
*data = pthread_getspecific (key);
return 0;
-# endif /* ACE_HAS_PTHREADS */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getspecific (key, data), result), int, -1);
@@ -2916,29 +2790,9 @@ ACE_OS::thr_join (ACE_hthread_t thr_handle,
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (thr_handle, 0, status), result),
int, -1);
# elif defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
- int ace_result;
-# if defined (ACE_LACKS_NULL_PTHREAD_STATUS)
- void *temp;
- ACE_OSCALL (pthread_join (thr_handle,
- status == 0 ? &temp : status),
- int, -1, ace_result);
-# else
- ACE_OSCALL (pthread_join (thr_handle, status), int, -1, ace_result);
-# endif /* ACE_LACKS_NULL_PTHREAD_STATUS */
- // Joinable threads need to be detached after joining on Pthreads
- // draft 4 (at least) to reclaim thread storage.
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- pthread_detach (&thr_handle);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
-
- return ace_result;
-
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_join (thr_handle, status), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
# elif defined (ACE_HAS_WTHREADS)
ACE_THR_FUNC_RETURN local_status = 0;
@@ -2979,19 +2833,9 @@ ACE_OS::thr_join (ACE_thread_t waiter_id,
int, -1);
# elif defined (ACE_HAS_PTHREADS)
ACE_UNUSED_ARG (thr_id);
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
-# if defined (ACE_LACKS_NULL_PTHREAD_STATUS)
- void *temp;
- ACE_OSCALL_RETURN (pthread_join (waiter_id,
- status == 0 ? &temp : status), int, -1);
-# else
- ACE_OSCALL_RETURN (pthread_join (waiter_id, status), int, -1);
-# endif
-# else
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_join (waiter_id, status), result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
# elif defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (waiter_id);
ACE_UNUSED_ARG (thr_id);
@@ -3016,7 +2860,7 @@ ACE_OS::thr_kill (ACE_thread_t thr_id, int signum)
ACE_OS_TRACE ("ACE_OS::thr_kill");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_LACKS_PTHREAD_KILL)
+# if defined (ACE_LACKS_PTHREAD_KILL)
ACE_UNUSED_ARG (signum);
ACE_UNUSED_ARG (thr_id);
ACE_NOTSUP_RETURN (-1);
@@ -3025,7 +2869,7 @@ ACE_OS::thr_kill (ACE_thread_t thr_id, int signum)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_kill (thr_id, signum),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
+# endif /* ACE_LACKS_PTHREAD_KILL */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_kill (thr_id, signum),
@@ -3107,6 +2951,20 @@ ACE_OS::thr_self (void)
#endif /* ACE_HAS_THREADS */
}
+ACE_INLINE const char*
+ACE_OS::thr_name (void)
+{
+#if defined (ACE_HAS_THREADS)
+#if defined (ACE_HAS_VXTHREADS)
+ return ::taskName (ACE_OS::thr_self ());
+#else
+ ACE_NOTSUP_RETURN (0);
+#endif
+#else
+ ACE_NOTSUP_RETURN (0);
+#endif
+}
+
ACE_INLINE void
ACE_OS::thr_self (ACE_hthread_t &self)
{
@@ -3122,7 +2980,7 @@ ACE_OS::thr_self (ACE_hthread_t &self)
# elif defined (ACE_HAS_WTHREADS)
self = ::GetCurrentThread ();
# elif defined (ACE_HAS_VXTHREADS)
- self = ::taskName(::taskIdSelf ());
+ self = ::taskIdSelf ();
# endif /* ACE_HAS_STHREADS */
#else
self = 1; // Might as well make it the main thread ;-)
@@ -3135,23 +2993,11 @@ ACE_OS::thr_setcancelstate (int new_state, int *old_state)
ACE_OS_TRACE ("ACE_OS::thr_setcancelstate");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int old;
- old = pthread_setcancel (new_state);
- if (old == -1)
- return -1;
- *old_state = old;
- return 0;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG (old_state);
- ACE_OSCALL_RETURN (pthread_setintr (new_state), int, -1);
-# else /* this is draft 7 or std */
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcancelstate (new_state,
- old_state),
+ old_state),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# elif defined (ACE_HAS_STHREADS)
ACE_UNUSED_ARG (new_state);
ACE_UNUSED_ARG (old_state);
@@ -3178,23 +3024,11 @@ ACE_OS::thr_setcanceltype (int new_type, int *old_type)
ACE_OS_TRACE ("ACE_OS::thr_setcanceltype");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int old;
- old = pthread_setasynccancel (new_type);
- if (old == -1)
- return -1;
- *old_type = old;
- return 0;
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- ACE_UNUSED_ARG (old_type);
- ACE_OSCALL_RETURN (pthread_setintrtype (new_type), int, -1);
-# else /* this is draft 7 or std */
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcanceltype (new_type,
- old_type),
+ old_type),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
ACE_UNUSED_ARG (new_type);
ACE_UNUSED_ARG (old_type);
@@ -3241,18 +3075,6 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy)
# if (defined (ACE_HAS_PTHREADS) && \
(!defined (ACE_LACKS_SETSCHED) || defined (ACE_HAS_PTHREAD_SCHEDPARAM)))
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
- int result;
- result = pthread_setprio (ht_id, priority);
- return (result == -1 ? -1 : 0);
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- pthread_attr_t attr;
- if (pthread_getschedattr (ht_id, &attr) == -1)
- return -1;
- if (pthread_attr_setprio (attr, priority) == -1)
- return -1;
- return pthread_setschedattr (ht_id, attr);
-# else
int result;
struct sched_param param;
ACE_OS::memset ((void *) &param, 0, sizeof param);
@@ -3272,11 +3094,10 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy)
param.sched_priority = priority;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setschedparam (ht_id,
- policy,
- &param),
+ policy,
+ &param),
result),
int, -1);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
# elif defined (ACE_HAS_STHREADS)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setprio (ht_id, priority),
@@ -3287,15 +3108,7 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy)
ace_result_),
int, -1);
# elif defined (ACE_HAS_VXTHREADS)
- // Skip over the ID-allocated marker, if present.
- ht_id += ht_id[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- ACE_thread_t tid;
- ACE_OSCALL (::taskNameToId (ht_id), int, ERROR, tid);
-
- if (tid == ERROR)
- return -1;
- else
- ACE_OSCALL_RETURN (::taskPrioritySet (tid, priority), int, -1);
+ ACE_OSCALL_RETURN (::taskPrioritySet (ht_id, priority), int, -1);
# else
// For example, platforms that support Pthreads but LACK_SETSCHED.
ACE_UNUSED_ARG (ht_id);
@@ -3333,21 +3146,13 @@ ACE_OS::thr_sigsetmask (int how,
result),
int, -1);
# elif defined (ACE_HAS_PTHREADS)
- // Draft 4 and 6 implementations will sometimes have a sigprocmask () that
- // modifies the calling thread's mask only. If this is not so for your
- // platform, define ACE_LACKS_PTHREAD_THR_SIGSETMASK.
-# if defined (ACE_HAS_PTHREADS_DRAFT4) || \
- defined (ACE_HAS_PTHREADS_DRAFT6) || (defined (_UNICOS) && _UNICOS == 9)
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_OSCALL_RETURN (::sigprocmask (how, nsm, osm), int, -1);
- //FUZZ: enable check_for_lack_ACE_OS
-# elif !defined (ACE_LACKS_PTHREAD_SIGMASK)
+# if !defined (ACE_LACKS_PTHREAD_SIGMASK)
int result;
//FUZZ: disable check_for_lack_ACE_OS
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsm, osm),
result), int, -1);
//FUZZ: enable check_for_lack_ACE_OS
-# endif /* ACE_HAS_PTHREADS_DRAFT4 || ACE_HAS_PTHREADS_DRAFT6 || _UNICOS 9 */
+# endif /* !ACE_LACKS_PTHREAD_SIGMASK */
#if 0
/* Don't know if any platform actually needs this... */
@@ -3433,15 +3238,7 @@ ACE_OS::thr_suspend (ACE_hthread_t target_thread)
ACE_FAIL_RETURN (-1);
/* NOTREACHED */
# elif defined (ACE_HAS_VXTHREADS)
- // Skip over the ID-allocated marker, if present.
- target_thread += target_thread[0] == ACE_THR_ID_ALLOCATED ? 1 : 0;
- ACE_thread_t tid;
- ACE_OSCALL (::taskNameToId (target_thread), int, ERROR, tid);
-
- if (tid == ERROR)
- return -1;
- else
- ACE_OSCALL_RETURN (::taskSuspend (tid), int, -1);
+ ACE_OSCALL_RETURN (::taskSuspend (target_thread), int, -1);
# endif /* ACE_HAS_STHREADS */
#else
ACE_UNUSED_ARG (target_thread);
@@ -3455,11 +3252,7 @@ ACE_OS::thr_testcancel (void)
ACE_OS_TRACE ("ACE_OS::thr_testcancel");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
-#if defined(ACE_HAS_PTHREADS_DRAFT6)
- pthread_testintr ();
-#else /* ACE_HAS_PTHREADS_DRAFT6 */
pthread_testcancel ();
-#endif /* !ACE_HAS_PTHREADS_DRAFT6 */
# elif defined (ACE_HAS_STHREADS)
# elif defined (ACE_HAS_WTHREADS)
# elif defined (ACE_HAS_VXTHREADS)
@@ -3476,14 +3269,7 @@ ACE_OS::thr_yield (void)
ACE_OS_TRACE ("ACE_OS::thr_yield");
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS)
-# if defined (ACE_HAS_PTHREADS_STD)
- // Note - this is a POSIX.4 function - not a POSIX.1c function...
::sched_yield ();
-# elif defined (ACE_HAS_PTHREADS_DRAFT6)
- pthread_yield (0);
-# else /* Draft 4 and 7 */
- pthread_yield ();
-# endif /* ACE_HAS_PTHREADS_STD */
# elif defined (ACE_HAS_STHREADS)
::thr_yield ();
# elif defined (ACE_HAS_WTHREADS)
@@ -3508,12 +3294,9 @@ ACE_OS::thread_mutex_destroy (ACE_thread_mutex_t *m)
# if defined (ACE_HAS_WTHREADS)
::DeleteCriticalSection (m);
return 0;
-
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS)
+# else
return ACE_OS::mutex_destroy (m);
-
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-
+# endif /* ACE_HAS_WTHREADS */
#else
ACE_UNUSED_ARG (m);
ACE_NOTSUP_RETURN (-1);
@@ -3548,7 +3331,7 @@ ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m,
# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
// Force the use of USYNC_THREAD!
return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg, 0, lock_type);
-# elif defined (ACE_VXWORKS)
+# elif defined (ACE_HAS_VXTHREADS)
return mutex_init (m, lock_type, name, arg);
# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
@@ -3591,12 +3374,9 @@ ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m,
# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS)
// Force the use of USYNC_THREAD!
return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg, 0, lock_type);
-
-# elif defined (ACE_VXWORKS)
+# elif defined (ACE_HAS_VXTHREADS)
return mutex_init (m, lock_type, name, arg);
-
# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS */
-
#else
ACE_UNUSED_ARG (m);
ACE_UNUSED_ARG (lock_type);
@@ -3616,9 +3396,9 @@ ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m)
# if defined (ACE_HAS_WTHREADS)
::EnterCriticalSection (m);
return 0;
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS)
+# else
return ACE_OS::mutex_lock (m);
-# endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS || VXWORKS */
+# endif /* ACE_HAS_WTHREADS */
#else
ACE_UNUSED_ARG (m);
ACE_NOTSUP_RETURN (-1);
@@ -3640,9 +3420,7 @@ ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m,
// Windows synchronization mechanism.
#if defined (ACE_HAS_THREADS) && !defined (ACE_HAS_WTHREADS)
-# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS)
return ACE_OS::mutex_lock (m, timeout);
-#endif /* ACE_HAS_STHREADS || ACE_HAS_PTHREADS || VXWORKS */
#else
ACE_UNUSED_ARG (m);
ACE_UNUSED_ARG (timeout);
@@ -3697,9 +3475,9 @@ ACE_OS::thread_mutex_unlock (ACE_thread_mutex_t *m)
# if defined (ACE_HAS_WTHREADS)
::LeaveCriticalSection (m);
return 0;
-# elif defined (ACE_HAS_STHREADS) || defined (ACE_HAS_PTHREADS) || defined (ACE_VXWORKS)
+# else
return ACE_OS::mutex_unlock (m);
-# endif /* Threads variety case */
+# endif /* ACE_HAS_WTHREADS */
#else
ACE_UNUSED_ARG (m);
ACE_NOTSUP_RETURN (-1);
diff --git a/ACE/ace/OS_NS_arpa_inet.cpp b/ACE/ace/OS_NS_arpa_inet.cpp
index 572422c044e..0ebf8a3dcc6 100644
--- a/ACE/ace/OS_NS_arpa_inet.cpp
+++ b/ACE/ace/OS_NS_arpa_inet.cpp
@@ -36,7 +36,7 @@ ACE_OS::inet_aton (const char *host_name, struct in_addr *addr)
addr->s_addr = ip_addr; // Network byte ordered
return 1;
}
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x650)
+#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x660)
// inet_aton() returns OK (0) on success and ERROR (-1) on failure.
// Must reset errno first. Refer to WindRiver SPR# 34949, SPR# 36026
::errnoSet(0);
diff --git a/ACE/ace/OS_NS_dlfcn.inl b/ACE/ace/OS_NS_dlfcn.inl
index d00a3f4032f..5b5e4142bb3 100644
--- a/ACE/ace/OS_NS_dlfcn.inl
+++ b/ACE/ace/OS_NS_dlfcn.inl
@@ -256,7 +256,7 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle,
# elif defined (__hpux)
- void *value;
+ void *value = 0;
int status;
shl_t _handle = handle;
ACE_OSCALL (::shl_findsym(&_handle, symbolname, TYPE_UNDEFINED, &value), int, -1, status);
@@ -268,11 +268,11 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle,
// which resolves the most recently loaded symbols .. which resolve mostly what we want..
ACE_UNUSED_ARG (handle);
SYM_TYPE symtype;
- void *value = 0;
+ char *value = 0;
STATUS status;
- ACE_OSCALL (::symFindByName(sysSymTbl, symbolname, (char **)&value, &symtype), int, -1, status);
+ ACE_OSCALL (::symFindByName(sysSymTbl, symbolname, &value, &symtype), int, -1, status);
- return status == OK ? value : 0;
+ return status == OK ? reinterpret_cast <void*>(value) : 0;
# else
diff --git a/ACE/ace/OS_NS_netdb.cpp b/ACE/ace/OS_NS_netdb.cpp
index a788714eefd..019a58dc0c1 100644
--- a/ACE/ace/OS_NS_netdb.cpp
+++ b/ACE/ace/OS_NS_netdb.cpp
@@ -130,7 +130,7 @@ ACE_OS::gethostbyname (const char *name)
if (0 == name || '\0' == name[0])
return 0;
- ACE_OSCALL (::hostGetByName ((char *) name), int, -1, first_addr);
+ ACE_OSCALL (::hostGetByName (const_cast <char *> (name)), int, -1, first_addr);
if (first_addr == -1)
return 0;
@@ -167,7 +167,7 @@ ACE_OS::gethostbyname_r (const char *name, hostent *result,
else
{
int addr;
- ACE_OSCALL (::hostGetByName ((char *) name), int, -1, addr);
+ ACE_OSCALL (::hostGetByName (const_cast <char *> (name)), int, -1, addr);
if (addr == -1)
{
diff --git a/ACE/ace/OS_NS_netdb.inl b/ACE/ace/OS_NS_netdb.inl
index a3c65135b63..f86db157149 100644
--- a/ACE/ace/OS_NS_netdb.inl
+++ b/ACE/ace/OS_NS_netdb.inl
@@ -170,7 +170,7 @@ ACE_OS::gethostbyaddr_r (const char *addr,
// And no aliases, so null-terminate h_aliases.
result->h_aliases = &result->h_addr_list[1];
- if (((2*sizeof(char*))+hp->h_length+ACE_OS::strlen (hp->h_name)+1) > sizeof (ACE_HOSTENT_DATA))
+ if (((2*sizeof(char*))+hp->h_length+ACE_OS::strlen (hp->h_name)+1) <= sizeof (ACE_HOSTENT_DATA))
{
result->h_name = (char *) result->h_addr_list[0] + hp->h_length;
ACE_OS::strcpy (result->h_name, hp->h_name);
diff --git a/ACE/ace/OS_NS_pwd.inl b/ACE/ace/OS_NS_pwd.inl
index 0c05d61d23f..029dd034d51 100644
--- a/ACE/ace/OS_NS_pwd.inl
+++ b/ACE/ace/OS_NS_pwd.inl
@@ -55,7 +55,7 @@ ACE_OS::getpwnam_r (const char *name, struct passwd *pwent,
#elif !defined (ACE_LACKS_PWD_FUNCTIONS)
# if defined (ACE_HAS_REENTRANT_FUNCTIONS)
# if !defined (ACE_LACKS_PWD_REENTRANT_FUNCTIONS)
-# if defined (ACE_HAS_PTHREADS_STD) && \
+# if defined (ACE_HAS_PTHREADS) && \
!defined (ACE_HAS_STHREADS) || \
defined (HPUX_11) || \
defined (__USLC__) // Added by Roland Gigler for SCO UnixWare 7.
@@ -85,7 +85,7 @@ ACE_OS::getpwnam_r (const char *name, struct passwd *pwent,
return pwent;
# else
return ::getpwnam_r (name, pwent, buffer, buflen);
-# endif /* ACE_HAS_PTHREADS_STD */
+# endif /* ACE_HAS_PTHREADS */
# else
ACE_UNUSED_ARG (name);
ACE_UNUSED_ARG (pwent);
diff --git a/ACE/ace/OS_NS_signal.inl b/ACE/ace/OS_NS_signal.inl
index df71ce0eb23..98f02459494 100644
--- a/ACE/ace/OS_NS_signal.inl
+++ b/ACE/ace/OS_NS_signal.inl
@@ -26,18 +26,18 @@ kill (pid_t pid, int signum)
ACE_INLINE int
pthread_sigmask (int how, const sigset_t *nsp, sigset_t *osp)
{
-#if defined (ACE_HAS_PTHREADS_STD) && !defined (ACE_LACKS_PTHREAD_SIGMASK)
+#if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_SIGMASK)
int result;
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsp, osp),
result),
int,
-1);
-#else /* !ACE_HAS_PTHREADS_STD && !ACE_LACKS_PTHREAD_SIGMASK */
+#else /* !ACE_HAS_PTHREADS && !ACE_LACKS_PTHREAD_SIGMASK */
ACE_UNUSED_ARG (how);
ACE_UNUSED_ARG (nsp);
ACE_UNUSED_ARG (osp);
ACE_NOTSUP_RETURN (-1);
-#endif /* ACE_HAS_PTHREADS_STD && !ACE_LACKS_PTHREAD_SIGMASK */
+#endif /* ACE_HAS_PTHREADS && !ACE_LACKS_PTHREAD_SIGMASK */
}
ACE_INLINE int
diff --git a/ACE/ace/OS_NS_stdio.inl b/ACE/ace/OS_NS_stdio.inl
index 9ab0b580d3a..b134e754afe 100644
--- a/ACE/ace/OS_NS_stdio.inl
+++ b/ACE/ace/OS_NS_stdio.inl
@@ -1017,6 +1017,40 @@ ACE_OS::vsprintf (char *buffer, const char *format, va_list argptr)
return ::vsprintf (buffer, format, argptr);
}
+#if defined (ACE_HAS_WCHAR)
+ACE_INLINE int
+ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
+{
+# if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) || \
+ (defined (sun) && !(defined(_XOPEN_SOURCE) && (_XOPEN_VERSION-0==4))) || \
+ defined (ACE_HAS_DINKUM_STL) || defined (__DMC__) || \
+ defined (ACE_HAS_VSWPRINTF) || defined (ACE_WIN32_VC9) || \
+ (defined (ACE_WIN32_VC8) && !defined (ACE_HAS_WINCE) && \
+ _MSC_FULL_VER > 140050000)
+
+ // The XPG4/UNIX98/C99 signature of the wide-char sprintf has a
+ // maxlen argument. Since this method doesn't supply one, pass in
+ // a length that works (ULONG_MAX doesn't on all platform since some check
+ // to see if the operation will remain in bounds). If this isn't ok, use
+ // ACE_OS::snprintf().
+ return vswprintf (buffer, 4096, format, argptr);
+
+# elif defined (ACE_WIN32)
+ // Windows has vswprintf, but the pre-VC8 signature is from the older
+ // ISO C standard. Also see ACE_OS::snprintf() for more info on this.
+
+ return vswprintf (buffer, format, argptr);
+
+# else
+ ACE_UNUSED_ARG (buffer);
+ ACE_UNUSED_ARG (format);
+ ACE_UNUSED_ARG (argptr);
+ ACE_NOTSUP_RETURN (-1);
+
+# endif /* XPG5 || ACE_HAS_DINKUM_STL */
+}
+#endif /* ACE_HAS_WCHAR */
+
ACE_INLINE int
ACE_OS::vsnprintf (char *buffer, size_t maxlen, const char *format, va_list ap)
{
@@ -1064,65 +1098,42 @@ ACE_OS::vsnprintf (char *buffer, size_t maxlen, const char *format, va_list ap)
#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
-ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
-{
-# if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) || \
- (defined (sun) && !(defined(_XOPEN_SOURCE) && (_XOPEN_VERSION-0==4))) || \
- defined (ACE_HAS_DINKUM_STL) || defined (__DMC__) || \
- defined (ACE_HAS_VSWPRINTF) || \
- (defined (ACE_WIN32_VC8) && !defined (ACE_HAS_WINCE) && \
- _MSC_FULL_VER > 140050000)
-
- // The XPG4/UNIX98/C99 signature of the wide-char sprintf has a
- // maxlen argument. Since this method doesn't supply one, pass in
- // a length that works (ULONG_MAX doesn't on all platform since some check
- // to see if the operation will remain in bounds). If this isn't ok, use
- // ACE_OS::snprintf().
- return vswprintf (buffer, 4096, format, argptr);
-
-# elif defined (ACE_WIN32)
- // Windows has vswprintf, but the pre-VC8 signature is from the older
- // ISO C standard. Also see ACE_OS::snprintf() for more info on this.
-
- return vswprintf (buffer, format, argptr);
-
-# else
- ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (format);
- ACE_UNUSED_ARG (argptr);
- ACE_NOTSUP_RETURN (-1);
-
-# endif /* XPG5 || ACE_HAS_DINKUM_STL */
-}
-#endif /* ACE_HAS_WCHAR */
-
-#if defined (ACE_HAS_WCHAR)
-ACE_INLINE int
ACE_OS::vsnprintf (wchar_t *buffer, size_t maxlen, const wchar_t *format, va_list ap)
{
# if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) || \
(defined (sun) && !(defined(_XOPEN_SOURCE) && (_XOPEN_VERSION-0==4))) || \
(defined (ACE_HAS_DINKUM_STL) || defined (__DMC__)) || \
- defined (ACE_HAS_VSWPRINTF)
-
- return vswprintf (buffer, maxlen, format, ap);
-
-# elif defined (ACE_HAS_TR24731_2005_CRT)
-
- return _vsnwprintf_s (buffer, maxlen, _TRUNCATE, format, ap);
+ defined (ACE_HAS_VSWPRINTF) || \
+ defined (ACE_WIN32)
-# elif defined (ACE_WIN32)
+ int result;
- int result = ::_vsnwprintf (buffer, maxlen, format, ap);
+# if defined (ACE_WIN32)
+ // Microsoft's vswprintf() doesn't have the maxlen argument that
+ // XPG4/UNIX98 define. They do, however, recommend use of _vsnwprintf()
+ // as a substitute, which does have the same signature as the UNIX98 one.
+ result = ::_vsnwprintf (buffer, maxlen, format, ap);
- // Win32 doesn't regard a full buffer with no 0-terminate as an
-// overrun.
+ // Win32 doesn't regard a full buffer with no 0-terminate as an overrun.
if (result == static_cast<int> (maxlen))
- result = -1;
+ buffer[maxlen-1] = '\0';
// Win32 doesn't 0-terminate the string if it overruns maxlen.
if (result == -1)
buffer[maxlen-1] = '\0';
+# else
+ result = vswprintf (buffer, maxlen, format, ap);
+#endif
+
+ // In out-of-range conditions, C99 defines vsnprintf() to return the number
+ // of characters that would have been written if enough space was available.
+ // Earlier variants of the vsnprintf() (e.g. UNIX98) defined it to return
+ // -1. This method follows the C99 standard, but needs to guess at the
+ // value; uses maxlen + 1.
+ if (result == -1)
+ {
+ result = static_cast <int> (maxlen + 1);
+ }
return result;
diff --git a/ACE/ace/OS_NS_stdlib.cpp b/ACE/ace/OS_NS_stdlib.cpp
index 812722597c9..a04086d8a2b 100644
--- a/ACE/ace/OS_NS_stdlib.cpp
+++ b/ACE/ace/OS_NS_stdlib.cpp
@@ -775,7 +775,7 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
#endif /* ACE_LACKS_MKSTEMP */
#if !defined (ACE_HAS_GETPROGNAME) && !defined (ACE_HAS_SETPROGNAME)
-static const char *__progname = 0;
+static const char *__progname = "";
#endif /* !ACE_HAS_GETPROGNAME && !ACE_HAS_SETPROGNAME */
#if !defined (ACE_HAS_GETPROGNAME)
diff --git a/ACE/ace/OS_NS_string.cpp b/ACE/ace/OS_NS_string.cpp
index 9a7f44ab423..be63e28e450 100644
--- a/ACE/ace/OS_NS_string.cpp
+++ b/ACE/ace/OS_NS_string.cpp
@@ -119,7 +119,7 @@ ACE_OS::strerror (int errnum)
// and set errno to EINVAL.
ACE_Errno_Guard g (errno);
errno = 0;
- char *errmsg;
+ char *errmsg = 0;
#if defined (ACE_HAS_TR24731_2005_CRT)
errmsg = ret_errortext;
@@ -360,7 +360,7 @@ ACE_OS::strtok_r_emulation (ACE_WCHAR_T *s,
{
ACE_WCHAR_T* sbegin = s ? s : *lasts;
sbegin += ACE_OS::strspn(sbegin, tokens);
- if (*sbegin == 0)
+ if (*sbegin == 0)
{
static ACE_WCHAR_T empty[1] = { 0 };
*lasts = empty;
diff --git a/ACE/ace/OS_NS_sys_socket.inl b/ACE/ace/OS_NS_sys_socket.inl
index d98d6e31b0c..a983d34e7e4 100644
--- a/ACE/ace/OS_NS_sys_socket.inl
+++ b/ACE/ace/OS_NS_sys_socket.inl
@@ -807,9 +807,9 @@ ACE_OS::sendv (ACE_HANDLE handle,
local_iov[i].iov_len = buffers[i].iov_len;
new_total = total + buffers[i].iov_len;
- if ( new_total >= SSIZE_MAX )
+ if (new_total >= ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE)
{
- local_iov[i].iov_len = SSIZE_MAX - total;
+ local_iov[i].iov_len = ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE - total;
n = i+1;
break;
}
diff --git a/ACE/ace/OS_NS_sys_utsname.cpp b/ACE/ace/OS_NS_sys_utsname.cpp
index 588469780f3..f8ec8043fc3 100644
--- a/ACE/ace/OS_NS_sys_utsname.cpp
+++ b/ACE/ace/OS_NS_sys_utsname.cpp
@@ -11,6 +11,8 @@ ACE_RCSID(ace, OS_NS_sys_utsname, "$Id$")
#if defined (ACE_VXWORKS) && defined (ACE_LACKS_UNAME)
// for sysBspRev(), sysModel()
# include /**/ <sysLib.h>
+// for kernelVersion()
+# include /**/ <kernelLib.h>
#endif /* ACE_VXWORKS && ACE_LACKS_UNAME */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -213,7 +215,7 @@ ACE_OS::uname (ACE_utsname *name)
#elif defined (ACE_VXWORKS)
size_t maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "VxWorks");
- ACE_OS::strcpy (name->release, "???");
+ ACE_OS::strcpy (name->release, kernelVersion());
ACE_OS::strcpy (name->version, sysBspRev ());
ACE_OS::strcpy (name->machine, sysModel ());
diff --git a/ACE/ace/OS_NS_time.inl b/ACE/ace/OS_NS_time.inl
index 585e1b04d5a..fe1804c04e7 100644
--- a/ACE/ace/OS_NS_time.inl
+++ b/ACE/ace/OS_NS_time.inl
@@ -261,9 +261,17 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
ACE_hrtime_t now;
# endif /* ! ACE_LACKS_LONGLONG_T */
+#if defined (__amd64__) || defined (__x86_64__)
+ // Read the high res tick counter into 32 bit int variables "eax" and
+ // "edx", and then combine them into 64 bit int "now"
+ ACE_UINT32 eax, edx;
+ asm volatile ("rdtsc" : "=a" (eax), "=d" (edx) : : "memory");
+ now = (((ACE_UINT64) eax) | (((ACE_UINT64) edx) << 32));
+#else
// Read the high-res tick counter directly into memory variable "now".
// The A constraint signifies a 64-bit int.
asm volatile ("rdtsc" : "=A" (now) : : "memory");
+#endif
# if defined (ACE_LACKS_LONGLONG_T)
ACE_UINT32 least, most;
diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl
index 0a116123665..62bb81d6be5 100644
--- a/ACE/ace/OS_NS_unistd.inl
+++ b/ACE/ace/OS_NS_unistd.inl
@@ -21,7 +21,7 @@
#if defined (ACE_VXWORKS) || defined (ACE_HAS_WINCE)
# include "ace/os_include/os_unistd.h"
-# if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x650))
+# if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x660))
# if defined (__RTP__)
# include "ace/os_include/os_strings.h"
# else
diff --git a/ACE/ace/OS_main.h b/ACE/ace/OS_main.h
index 59e95c36f89..a978daa385c 100644
--- a/ACE/ace/OS_main.h
+++ b/ACE/ace/OS_main.h
@@ -29,6 +29,10 @@
extern char* rtems_progname;
# endif /* ACE_HAS_RTEMS */
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640) && defined (__RTP__)
+# include <resolvLib.h>
+#endif
+
# if !defined (ACE_MAIN)
# define ACE_MAIN main
# endif /* ! ACE_MAIN */
@@ -107,6 +111,22 @@ ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., main */ \
int \
ace_main_i
+# elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640) && defined (__RTP__)
+
+# define main \
+ACE_MAIN (int, char *[]); /* forward decl to gobble up the 'int' if there is one */ \
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+int ace_os_main_i (int, char *[]); \
+ACE_END_VERSIONED_NAMESPACE_DECL \
+int \
+ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., main */ \
+{ \
+ resolvInit(); \
+ return ace_os_main_i (argc, argv); /* what the user calls "main" */ \
+} \
+int \
+ace_main_i
+
# elif !defined (ACE_WIN32)
# define main \
diff --git a/ACE/ace/Object_Manager.cpp b/ACE/ace/Object_Manager.cpp
index 086e1a22d80..313eb6a116a 100644
--- a/ACE/ace/Object_Manager.cpp
+++ b/ACE/ace/Object_Manager.cpp
@@ -236,7 +236,11 @@ ACE_Object_Manager::init (void)
# if defined (ACE_HAS_TSS_EMULATION)
// Initialize the main thread's TS storage.
- ACE_TSS_Emulation::tss_open (ts_storage_);
+ if (!ts_storage_initialized_)
+ {
+ ACE_TSS_Emulation::tss_open (ts_storage_);
+ ts_storage_initialized_ = true;
+ }
# endif /* ACE_HAS_TSS_EMULATION */
#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
@@ -247,6 +251,9 @@ ACE_Object_Manager::init (void)
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR );
#endif /* _DEBUG && _MSC_VER || __INTEL_COMPILER */
+ // The system does not display the critical-error-handler message box
+ SetErrorMode(SEM_FAILCRITICALERRORS);
+
// And this will catch all unhandled exceptions.
SetUnhandledExceptionFilter (&ACE_UnhandledExceptionFilter);
#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE */
@@ -279,6 +286,30 @@ ACE_Object_Manager::init (void)
}
}
+#if defined (ACE_HAS_TSS_EMULATION)
+int
+ACE_Object_Manager::init_tss (void)
+{
+ return ACE_Object_Manager::instance ()->init_tss_i ();
+}
+
+int
+ACE_Object_Manager::init_tss_i (void)
+{
+ ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
+ *instance_->internal_lock_, -1));
+
+ if (!ts_storage_initialized_)
+ {
+ ACE_TSS_Emulation::tss_open (ts_storage_);
+ ts_storage_initialized_ = true;
+ }
+
+ return 0;
+}
+
+#endif
+
ACE_Object_Manager::ACE_Object_Manager (void)
// With ACE_HAS_TSS_EMULATION, ts_storage_ is initialized by the call to
// ACE_OS::tss_open () in the function body.
@@ -290,7 +321,10 @@ ACE_Object_Manager::ACE_Object_Manager (void)
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
, singleton_null_lock_ (0)
, singleton_recursive_lock_ (0)
-# endif /* ACE_MT_SAFE */
+#endif /* ACE_MT_SAFE */
+#if defined (ACE_HAS_TSS_EMULATION)
+ , ts_storage_initialized_ (false)
+#endif
{
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
ACE_NEW (internal_lock_, ACE_Recursive_Thread_Mutex);
diff --git a/ACE/ace/Object_Manager.h b/ACE/ace/Object_Manager.h
index b330fe16e84..8481aa15e99 100644
--- a/ACE/ace/Object_Manager.h
+++ b/ACE/ace/Object_Manager.h
@@ -245,6 +245,11 @@ public:
*/
static int at_exit (ACE_Cleanup *object, void *param = 0);
+#if defined (ACE_HAS_TSS_EMULATION)
+ static int init_tss (void);
+ int init_tss_i (void);
+#endif
+
/**
* Register an object (or array) for cleanup at process termination.
* "cleanup_hook" points to a (global, or static member) function
@@ -424,6 +429,7 @@ private:
#if defined (ACE_HAS_TSS_EMULATION)
// Main thread's thread-specific storage array.
void *ts_storage_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX];
+ bool ts_storage_initialized_;
#endif /* ACE_HAS_TSS_EMULATION */
#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER)
diff --git a/ACE/ace/Pipe.cpp b/ACE/ace/Pipe.cpp
index f40299ce79f..aa87ab740eb 100644
--- a/ACE/ace/Pipe.cpp
+++ b/ACE/ace/Pipe.cpp
@@ -180,6 +180,21 @@ ACE_Pipe::open (int buffer_size)
return -1;
}
# endif /* ! ACE_LACKS_SOCKET_BUFSIZ */
+# if defined (ACE_OPENVMS) && !defined (ACE_LACKS_TCP_NODELAY)
+ int one = 1;
+ // OpenVMS implements socketpair(AF_UNIX...) by returning AF_INET sockets.
+ // Since these are plagued by Nagle as any other INET socket we need to set
+ // TCP_NODELAY on the write handle.
+ if (ACE_OS::setsockopt (this->handles_[1],
+ ACE_IPPROTO_TCP,
+ TCP_NODELAY,
+ reinterpret_cast <const char *> (&one),
+ sizeof (one)) == -1)
+ {
+ this->close ();
+ return -1;
+ }
+# endif /* ACE_OPENVMS && !ACE_LACKS_TCP_NODELAY */
#endif /* ! ACE_LACKS_SOCKETPAIR && ! ACE_HAS_STREAM_PIPES */
// Point both the read and write HANDLES to the appropriate socket
// HANDLEs.
@@ -326,13 +341,13 @@ ACE_Pipe::recv (size_t n, ...) const
}
#if defined (ACE_WIN32)
- ssize_t result = ACE::recvv (this->read_handle (),
- iovp,
- total_tuples);
+ ssize_t const result = ACE::recvv (this->read_handle (),
+ iovp,
+ total_tuples);
#else
- ssize_t result = ACE_OS::readv (this->read_handle (),
- iovp,
- total_tuples);
+ ssize_t const result = ACE_OS::readv (this->read_handle (),
+ iovp,
+ total_tuples);
#endif /* ACE_WIN32 */
#if !defined (ACE_HAS_ALLOCA)
diff --git a/ACE/ace/Pipe.h b/ACE/ace/Pipe.h
index ed82b9c42b3..4d2f2b13cd0 100644
--- a/ACE/ace/Pipe.h
+++ b/ACE/ace/Pipe.h
@@ -141,12 +141,12 @@ public:
ssize_t sendv (const iovec iov[],
int n) const;
- /// Send an <iovec> of size @a n to the file. Will block until all
+ /// Send an @c iovec of size @a n to the file. Will block until all
/// bytes are sent or an error occurs.
ssize_t sendv_n (const iovec iov[],
int n) const;
- /// Receive an <iovec> of size @a n to the file.
+ /// Receive an @c iovec of size @a n to the file.
ssize_t recvv_n (iovec iov[],
int n) const;
diff --git a/ACE/ace/Process_Manager.cpp b/ACE/ace/Process_Manager.cpp
index 11ff975a59c..0caacba7234 100644
--- a/ACE/ace/Process_Manager.cpp
+++ b/ACE/ace/Process_Manager.cpp
@@ -40,9 +40,9 @@ ACE_Process_Manager::cleanup (void *, void *)
ACE_Process_Manager::close_singleton ();
}
-// This function acts as a signal handler for SIGCHLD. We don't really want
-// to do anything with the signal - it's just needed to interrupt a sleep.
-// See wait() for more info.
+// This function acts as a signal handler for SIGCHLD. We don't really
+// want to do anything with the signal - it's just needed to interrupt
+// a sleep. See wait() for more info.
#if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SIGNALS)
static void
sigchld_nop (int, siginfo_t *, ucontext_t *)
@@ -676,10 +676,8 @@ ACE_Process_Manager::set_scheduler_all (const ACE_Sched_Params & params)
return -1;
}
return 0;
-
}
-
// Locate the index in the table associated with <pid>. Must be
// called with the lock held.
@@ -785,21 +783,25 @@ ACE_Process_Manager::wait (pid_t pid,
ssize_t idx = -1;
ACE_Process *proc = 0;
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
-
- if (pid != 0)
- {
- idx = this->find_proc (pid);
- if (idx == -1)
- return ACE_INVALID_PID;
- else
- proc = process_table_[idx].process_;
- }
-
+ {
+ // fake context after which the lock is released
+ ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
+
+ if (pid != 0)
+ {
+ idx = this->find_proc (pid);
+ if (idx == -1)
+ return ACE_INVALID_PID;
+ else
+ proc = process_table_[idx].process_;
+ }
+ // release the lock.
+ }
if (proc != 0)
pid = proc->wait (timeout, status);
else
{
+ ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
// Wait for any Process spawned by this Process_Manager.
#if defined (ACE_WIN32)
HANDLE *handles = 0;
@@ -827,10 +829,10 @@ ACE_Process_Manager::wait (pid_t pid,
pid = 0;
else
{
- // Green Hills produces a warning that result >= WAIT_OBJECT_0 is
- // a pointless comparison because WAIT_OBJECT_0 is zero and DWORD is
- // unsigned long, so this test is skipped for Green Hills.
- // Same for mingw.
+ // Green Hills produces a warning that result >=
+ // WAIT_OBJECT_0 is a pointless comparison because
+ // WAIT_OBJECT_0 is zero and DWORD is unsigned long, so this
+ // test is skipped for Green Hills. Same for mingw.
# if defined (ghs) || defined (__MINGW32__) || (defined (_MSC_VER) && _MSC_VER >= 1300)
ACE_ASSERT (result < WAIT_OBJECT_0 + this->current_count_);
# else
@@ -867,13 +869,9 @@ ACE_Process_Manager::wait (pid_t pid,
delete [] handles;
#else /* !defined(ACE_WIN32) */
if (timeout == ACE_Time_Value::max_time)
- {
- pid = ACE_OS::waitpid (-1, status, 0);
- }
+ pid = ACE_OS::waitpid (-1, status, 0);
else if (timeout == ACE_Time_Value::zero)
- {
- pid = ACE_OS::waitpid (-1, status, WNOHANG);
- }
+ pid = ACE_OS::waitpid (-1, status, WNOHANG);
else
{
# if defined (ACE_LACKS_UNIX_SIGNALS)
@@ -912,9 +910,9 @@ ACE_Process_Manager::wait (pid_t pid,
# if defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)
if (pid > 0 || (pid == ACE_INVALID_PID && errno != EINTR))
# else
- if (pid > 0 || pid == ACE_INVALID_PID)
+ if (pid > 0 || pid == ACE_INVALID_PID)
# endif
- break; // Got a child or an error - all done
+ break; // Got a child or an error - all done
// pid 0, nothing is ready yet, so wait.
// Do a sleep (only this thread sleeps) til something
@@ -930,31 +928,28 @@ ACE_Process_Manager::wait (pid_t pid,
// Restore the previous SIGCHLD action if it was changed.
if (this->reactor () == 0)
- {
- old_action.register_action (SIGCHLD);
- }
+ old_action.register_action (SIGCHLD);
# endif /* !ACE_LACKS_UNIX_SIGNALS */
}
#endif /* !defined (ACE_WIN32) */
}
+ ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, this->lock_, -1));
if (pid != ACE_INVALID_PID && pid != 0)
{
- if (proc == 0)
+ //we always need to get our id, because we could have been moved in the table meanwhile
+ idx = this->find_proc (pid);
+ if (idx == -1)
{
- idx = this->find_proc (pid);
- if (idx == -1)
- {
- // oops, reaped an unmanaged process!
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) oops, reaped unmanaged %d\n"),
- pid));
- return pid;
- }
- else
- proc = process_table_[idx].process_;
+ // oops, reaped an unmanaged process!
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) oops, reaped unmanaged %d\n"),
+ pid));
+ return pid;
}
else
+ proc = process_table_[idx].process_;
+ if (proc != 0)
ACE_ASSERT (pid == proc->getpid ());
this->notify_proc_handler (idx,
diff --git a/ACE/ace/QoS/qos.mpc b/ACE/ace/QoS/qos.mpc
index ebd482517f6..2714a735bf6 100644
--- a/ACE/ace/QoS/qos.mpc
+++ b/ACE/ace/QoS/qos.mpc
@@ -7,7 +7,7 @@ project(QoS) : acelib, install {
dynamicflags = ACE_QoS_BUILD_DLL
macros += ACE_HAS_QOS
- specific(borland, bmake, nmake, em3, vc6, vc7, vc71, vc8) {
+ specific(borland, bmake, nmake, em3, vc6, vc7, vc71, vc8, vc9) {
macros += ACE_HAS_WINSOCK2_GQOS
}
diff --git a/ACE/ace/README b/ACE/ace/README
index 63fc1904ed6..b6f243d111e 100644
--- a/ACE/ace/README
+++ b/ACE/ace/README
@@ -326,13 +326,6 @@ ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS Compiler does not call
thrown. In particular, the
exception specification is not
respected.
-ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION Compiler's template
- instantiation mechanism
- supports the use of explicit
- C++ specializations for all
- used templates. This is also
- used for GNU G++ if you don't
- use the "repo" patches.
ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT When a base-class is a
specialization of a class template
then this class template must be
diff --git a/ACE/ace/Reactor.h b/ACE/ace/Reactor.h
index 5f264ca49de..4be27c064dd 100644
--- a/ACE/ace/Reactor.h
+++ b/ACE/ace/Reactor.h
@@ -75,11 +75,14 @@ public:
};
/**
- * You can add a hook to various run_event methods and the hook will
- * be called after handling every reactor event. If this function
- * returns 0, <run_reactor_event_loop> will check for the return
- * value of <handle_event>. If it is -1, the
- * <run_reactor_event_loop> will return (pre-maturely.)
+ * You can specify a hook function to event-handling methods that will
+ * be called after each iteration of event handling. If the hook function
+ * returns a non-zero value, the event loop will immediately resume
+ * waiting for the next event(s) to process without checking the error
+ * status of the just-completed iteration of event handling or the
+ * end-of-loop indication. If the hook function returns 0, the event
+ * handling error status and the end-of-loop indication will be checked
+ * as normal, just as if there is no hook function specified.
*/
typedef int (*REACTOR_EVENT_HOOK)(ACE_Reactor *);
@@ -260,7 +263,7 @@ public:
* but does not actually dispatch the event handlers. By default,
* don't block while checking this, i.e., "poll".
*/
- int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
+ int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
/**
* This event loop driver blocks for up to @a max_wait_time before
@@ -616,8 +619,8 @@ public:
// = High-level Event_Handler scheduling operations
- /// Add @a masks_to_be_added to the <event_handler>'s entry.
- /// <event_handler> must already have been registered.
+ /// Add @a masks_to_be_added to the @a event_handler's entry.
+ /// @a event_handler must already have been registered.
/// Note that this call does not cause the Reactor to re-examine
/// its set of handlers - the new masks will be noticed the next
/// time the Reactor waits for activity. If there is no other
@@ -693,7 +696,7 @@ public:
/**
* Set the maximum number of times that ACE_Reactor will
- * iterate and dispatch the <ACE_Event_Handlers> that are passed in
+ * iterate and dispatch the ACE_Event_Handlers that are passed in
* via the notify queue before breaking out of its
* <ACE_Message_Queue::dequeue> loop. By default, this is set to
* -1, which means "iterate until the queue is empty." Setting this
diff --git a/ACE/ace/Recursive_Thread_Mutex.cpp b/ACE/ace/Recursive_Thread_Mutex.cpp
index 673b77ca2ed..285789dd696 100644
--- a/ACE/ace/Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Recursive_Thread_Mutex.cpp
@@ -82,7 +82,7 @@ int
ACE_Recursive_Thread_Mutex::get_nesting_level (void)
{
// ACE_TRACE ("ACE_Recursive_Thread_Mutex::get_nesting_level");
-#if defined (ACE_HAS_WINCE) || defined (ACE_VXWORKS)
+#if defined (ACE_HAS_WINCE) || defined (ACE_HAS_VXTHREADS)
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_HAS_RECURSIVE_MUTEXES)
# if defined (ACE_WIN32)
diff --git a/ACE/ace/Refcounted_Auto_Ptr.h b/ACE/ace/Refcounted_Auto_Ptr.h
index 782f9ab85db..1647d862270 100644
--- a/ACE/ace/Refcounted_Auto_Ptr.h
+++ b/ACE/ace/Refcounted_Auto_Ptr.h
@@ -52,7 +52,7 @@ public:
/// Constructor that initializes an ACE_Refcounted_Auto_Ptr to
/// the specified pointer value.
- ACE_Refcounted_Auto_Ptr (X *p = 0);
+ explicit ACE_Refcounted_Auto_Ptr (X *p = 0);
/// Copy constructor binds the new ACE_Refcounted_Auto_Ptr to the
/// representation object referenced by @a r.
@@ -68,7 +68,7 @@ public:
/// ACE_Refcounted_Auto_Ptr_Rep. An ACE_Refcounted_Auto_Ptr_Rep
/// is created if necessary.
void operator = (const ACE_Refcounted_Auto_Ptr<X, ACE_LOCK> &r);
-
+
/// Equality operator that returns @c true if both
/// ACE_Refcounted_Auto_Ptr objects point to the same underlying
/// representation. It does not compare the actual pointers.
@@ -86,6 +86,12 @@ public:
/// Accessor method.
X &operator *() const;
+
+ /// Check rep easily.
+ bool operator !() const;
+
+ /// Check rep easily.
+ operator bool () const;
/// Releases the reference to the underlying representation object.
/// @retval The pointer value prior to releasing it.
diff --git a/ACE/ace/Refcounted_Auto_Ptr.inl b/ACE/ace/Refcounted_Auto_Ptr.inl
index f44159606ff..a8412d2d3a2 100644
--- a/ACE/ace/Refcounted_Auto_Ptr.inl
+++ b/ACE/ace/Refcounted_Auto_Ptr.inl
@@ -124,6 +124,18 @@ ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator *() const
return *this->rep_->get ();
}
+template<class X, class ACE_LOCK> inline bool
+ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator !() const
+{
+ return this->rep_->get () == 0;
+}
+
+template<class X, class ACE_LOCK> inline
+ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::operator bool () const
+{
+ return this->rep_->get () != 0;
+}
+
template <class X, class ACE_LOCK> inline X*
ACE_Refcounted_Auto_Ptr<X, ACE_LOCK>::get (void) const
{
diff --git a/ACE/ace/SOCK_Dgram_Mcast.cpp b/ACE/ace/SOCK_Dgram_Mcast.cpp
index 477527d55cf..baa49f521e5 100644
--- a/ACE/ace/SOCK_Dgram_Mcast.cpp
+++ b/ACE/ace/SOCK_Dgram_Mcast.cpp
@@ -347,9 +347,9 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
if (if_cnt < 2)
{
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_TEXT ("0.0.0.0")) == 0)
+ if (this->join (mcast_addr,
+ reuse_addr,
+ ACE_TEXT ("0.0.0.0")) == 0)
++nr_subscribed;
}
else
@@ -363,9 +363,9 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
// Convert to 0-based for indexing, next loop check.
if (if_addrs[if_cnt].get_type () != AF_INET || if_addrs[if_cnt].is_loopback ())
continue;
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR
+ if (this->join (mcast_addr,
+ reuse_addr,
+ ACE_TEXT_CHAR_TO_TCHAR
(if_addrs[if_cnt].get_host_addr ())) == 0)
++nr_subscribed;
}
@@ -398,9 +398,9 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
if (if_cnt < 2)
{
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_TEXT ("0.0.0.0")) == 0)
+ if (this->join (mcast_addr,
+ reuse_addr,
+ ACE_TEXT ("0.0.0.0")) == 0)
++nr_subscribed;
}
else
@@ -414,9 +414,9 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
// Convert to 0-based for indexing, next loop check.
if (if_addrs[if_cnt].is_loopback ())
continue;
- if (this->subscribe (mcast_addr,
- reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR
+ if (this->join (mcast_addr,
+ reuse_addr,
+ ACE_TEXT_CHAR_TO_TCHAR
(if_addrs[if_cnt].get_host_addr ())) == 0)
++nr_subscribed;
}
@@ -462,22 +462,6 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
}
-// Subscribe and add address/iface to subscription list if successful.
-int
-ACE_SOCK_Dgram_Mcast::subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::subscribe");
-
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (protocol);
-
- return this->join (mcast_addr,reuse_addr, net_if);
-}
-
int
ACE_SOCK_Dgram_Mcast::join (const ACE_INET_Addr &mcast_addr,
int reuse_addr,
@@ -534,7 +518,7 @@ ACE_SOCK_Dgram_Mcast::join (const ACE_INET_Addr &mcast_addr,
}
// Attempt subscription.
- int result = this->subscribe_i (subscribe_addr, reuse_addr, net_if);
+ int result = this->subscribe_i (subscribe_addr, reuse_addr, net_if);
#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
if (result == 0)
@@ -810,24 +794,6 @@ ACE_SOCK_Dgram_Mcast::unsubscribe_ifs (const ACE_INET_Addr &mcast_addr,
}
-// Unsubscribe, and remove address from subscription list.
-// Note: If there are duplicate entries, only finds the first in the list (this
-// is a defined restriction - most environments don't allow duplicates to be
-// created.)
-int
-ACE_SOCK_Dgram_Mcast::unsubscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe");
-
- ACE_UNUSED_ARG (protocol_family);
- ACE_UNUSED_ARG (protocol);
-
- return this->leave (mcast_addr, net_if);
-}
-
int
ACE_SOCK_Dgram_Mcast::leave (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if)
@@ -940,30 +906,10 @@ ACE_SOCK_Dgram_Mcast::unsubscribe_i (const ACE_INET_Addr &mcast_addr,
}
int
-ACE_SOCK_Dgram_Mcast::unsubscribe (void)
-{
- ACE_TRACE ("ACE_SOCK_Dgram_Mcast::unsubscribe");
-
- // Can't implement this reliably without keeping an expensive list,
- // and can't close the socket since the caller may want to continue
- // using the socket to send() or join() new groups. Even if we
- // wanted to be clever and reopen the socket, we'd need to know what
- // options had been set, and reset them--and we have no way of doing
- // that either. :-(
- // Should this return -1?
- ACE_ERROR_RETURN ((LM_INFO,
- ACE_TEXT ("ACE_SOCK_Dgram_Mcast::unsubscribe (void) ")
- ACE_TEXT ("has been deprecated. You must either ")
- ACE_TEXT ("close to socket to unsubscribe to all ")
- ACE_TEXT ("or unsubscribe to each individually.\n")),
- 0);
-}
-
-int
ACE_SOCK_Dgram_Mcast::clear_subs_list (void)
{
ACE_TRACE ("ACE_SOCK_Dgram_Mcast::clear_subs_list");
- int result = 0;
+ int result = 0;
#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
ACE_MT (ACE_GUARD_RETURN (ACE_SDM_LOCK, guard,
diff --git a/ACE/ace/SOCK_Dgram_Mcast.h b/ACE/ace/SOCK_Dgram_Mcast.h
index 1f53e9f0646..a7e668b4be0 100644
--- a/ACE/ace/SOCK_Dgram_Mcast.h
+++ b/ACE/ace/SOCK_Dgram_Mcast.h
@@ -250,18 +250,9 @@ public:
* Note that the optional @a reuse_addr parameter does not apply to
* subscriptions; it is only used if <open> is implicitly invoked (see above).
*
- * @deprecated This method has been deprecated, please use join() instead.
- * In addition, the following parameters have also been deprecated:
- * @a protocol_family and @a protocol have no effect.
+ * Uses the mcast_addr to determine protocol_family, and protocol which
+ * we always pass as 0 anyway.
*/
- int subscribe (const ACE_INET_Addr &mcast_addr,
- int reuse_addr = 1, // (see above)
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0);
-
- /// join() replaces subscribe() and uses the mcast_addr to determine
- /// protocol_family, and protocol which we always pass as 0 anyway.
int join (const ACE_INET_Addr &mcast_addr,
int reuse_addr = 1, // (see above)
const ACE_TCHAR *net_if = 0);
@@ -281,35 +272,12 @@ public:
* implemented in this environment (_even if_ the <subscribe> specifies a
* non- NULL <net_if>).
*
- * @deprecated This method has been deprecated. Please use leave() instead.
- * In addition, @a protocol_family and @a protocol have no effect.
+ * leave() replaces unsubscribe() and uses mcast_addr to determine
+ * protocol_family, and protocol which we always pass as 0 anyway.
*/
- int unsubscribe (const ACE_INET_Addr &mcast_addr,
- const ACE_TCHAR *net_if = 0,
- int protocol_family = PF_INET,
- int protocol = 0);
-
- /// leave() replaces unsubscribe() and uses mcast_addr to determine
- /// protocol_family, and protocol which we always pass as 0 anyway.
int leave (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = 0);
- /// Unsubscribe all current subscriptions.
- /**
- * Unsubscribe all active group/interface subscriptions (if any).
- *
- * Returns -1 if any unsubscribe failed, 0 if there are no errors or no
- * current subscriptions.
- *
- * @deprecated This method has been deprecated. Since a list of groups is
- * not maintained (except when ACE_SOCK_DGRAM_MCAST_DUMPABLE is defined),
- * it isn't possible to unsubscribe to all the groups without closing
- * the socket. Therefore, if applications wish to unsubscribe to all
- * groups without closing the socket, they much keep track of the
- * subscriptions and call the above unsubscribe () for each.
- */
- int unsubscribe (void);
-
// = Data transfer routines.
/// Send @a n bytes in @a buf, using the multicast address and network interface
diff --git a/ACE/ace/SSL/SSL_SOCK_Stream.cpp b/ACE/ace/SSL/SSL_SOCK_Stream.cpp
index 83f5b35f5dc..46130a79fc7 100644
--- a/ACE/ace/SSL/SSL_SOCK_Stream.cpp
+++ b/ACE/ace/SSL/SSL_SOCK_Stream.cpp
@@ -70,8 +70,7 @@ ACE_SSL_SOCK_Stream::sendv (const iovec iov[],
ssize_t bytes_sent = 0;
ACE_Time_Value t;
- ACE_Time_Value *timeout =
- const_cast<ACE_Time_Value *> (max_wait_time);
+ ACE_Time_Value *timeout = const_cast<ACE_Time_Value *> (max_wait_time);
if (max_wait_time != 0)
{
@@ -86,7 +85,7 @@ ACE_SSL_SOCK_Stream::sendv (const iovec iov[],
for (size_t i = 0; i < n; ++i)
{
- const ssize_t result = this->send (iov[i].iov_base,
+ ssize_t const result = this->send (iov[i].iov_base,
iov[i].iov_len,
timeout);
@@ -195,7 +194,7 @@ ACE_SSL_SOCK_Stream::send (const void *buf,
val) == -1)
return -1;
- ssize_t bytes_transferred = this->send (buf, len, flags);
+ ssize_t const bytes_transferred = this->send (buf, len, flags);
ACE::restore_non_blocking_mode (this->get_handle (), val);
@@ -219,7 +218,7 @@ ACE_SSL_SOCK_Stream::send (size_t n, ...) const
{
ACE_TRACE ("ACE_SSL_SOCK_Stream::send");
- const size_t total_tuples = n / 2;
+ size_t const total_tuples = n / 2;
va_list argp;
va_start (argp, n);
@@ -233,9 +232,8 @@ ACE_SSL_SOCK_Stream::send (size_t n, ...) const
// scatter writes over SSL.
for (size_t i = 0; i < total_tuples; ++i)
{
- const ssize_t data_len = va_arg (argp, ssize_t);
- const ssize_t result = this->send (va_arg (argp, char *),
- data_len);
+ ssize_t const data_len = va_arg (argp, ssize_t);
+ ssize_t const result = this->send (va_arg (argp, char *), data_len);
if (result == -1)
{
@@ -277,7 +275,7 @@ ACE_SSL_SOCK_Stream::recv (size_t n, ...) const
{
ACE_TRACE ("ACE_SSL_SOCK_Stream::recv");
- const size_t total_tuples = n / 2;
+ size_t const total_tuples = n / 2;
va_list argp;
va_start (argp, n);
@@ -286,9 +284,8 @@ ACE_SSL_SOCK_Stream::recv (size_t n, ...) const
for (size_t i = 0; i < total_tuples; ++i)
{
- const ssize_t data_len = va_arg (argp, ssize_t);
- const ssize_t result = this->recv (va_arg (argp, char *),
- data_len);
+ ssize_t const data_len = va_arg (argp, ssize_t);
+ ssize_t const result = this->recv (va_arg (argp, char *), data_len);
if (result == -1)
{
@@ -540,8 +537,8 @@ ACE_SSL_SOCK_Stream::recvv_n (iovec iov[], size_t iovcnt) const
for (size_t i = 0; i < iovcnt; ++i)
{
- ssize_t result = this->recv_n (iov[i].iov_base,
- iov[i].iov_len);
+ ssize_t const result = this->recv_n (iov[i].iov_base,
+ iov[i].iov_len);
if (result == -1)
{
diff --git a/ACE/ace/SSL/SSL_SOCK_Stream.inl b/ACE/ace/SSL/SSL_SOCK_Stream.inl
index 352aca04b3e..f28b55997a5 100644
--- a/ACE/ace/SSL/SSL_SOCK_Stream.inl
+++ b/ACE/ace/SSL/SSL_SOCK_Stream.inl
@@ -35,7 +35,7 @@ ACE_SSL_SOCK_Stream::send_i (const void *buf,
if (flags != 0)
ACE_NOTSUP_RETURN (-1);
- const int bytes_sent = ::SSL_write (this->ssl_,
+ int const bytes_sent = ::SSL_write (this->ssl_,
static_cast<const char *> (buf),
n);
@@ -103,7 +103,7 @@ ACE_SSL_SOCK_Stream::recv_i (void *buf,
// NOTE: Caller must provide thread-synchronization.
int bytes_read = 0;
- const ACE_HANDLE handle = this->get_handle ();
+ ACE_HANDLE const handle = this->get_handle ();
// Value for current I/O mode (blocking/non-blocking)
int val = 0;
@@ -141,7 +141,7 @@ ACE_SSL_SOCK_Stream::recv_i (void *buf,
n);
}
- const int status = ::SSL_get_error (this->ssl_, bytes_read);
+ int const status = ::SSL_get_error (this->ssl_, bytes_read);
switch (status)
{
case SSL_ERROR_NONE:
@@ -275,7 +275,7 @@ ACE_SSL_SOCK_Stream::close (void)
// SSL_shutdown() returns 1 on successful shutdown of the SSL
// connection, not 0.
- const int status = ::SSL_shutdown (this->ssl_);
+ int const status = ::SSL_shutdown (this->ssl_);
switch (::SSL_get_error (this->ssl_, status))
{
diff --git a/ACE/ace/Sched_Params.cpp b/ACE/ace/Sched_Params.cpp
index d650a37e18a..9a699c773f9 100644
--- a/ACE/ace/Sched_Params.cpp
+++ b/ACE/ace/Sched_Params.cpp
@@ -122,7 +122,11 @@ ACE_Sched_Params::priority_min (const Policy policy,
#elif defined (ACE_VXWORKS)
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
+# if defined (VX_TASK_PRIORITY_MAX)
+ return VX_TASK_PRIORITY_MAX;
+# else
return 255;
+# endif
#else
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
@@ -222,7 +226,11 @@ ACE_Sched_Params::priority_max (const Policy policy,
#elif defined (ACE_VXWORKS)
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
+# if defined (VX_TASK_PRIORITY_MIN)
+ return VX_TASK_PRIORITY_MIN;
+# else
return 0;
+# endif
#else
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
@@ -235,11 +243,7 @@ ACE_Sched_Params::next_priority (const Policy policy,
const int priority,
const int scope)
{
-#if defined (ACE_VXWORKS)
- return priority > priority_max (policy, scope)
- ? priority - 1
- : priority_max (policy, scope);
-#elif defined (ACE_HAS_WTHREADS)
+#if defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
switch (priority)
@@ -265,8 +269,12 @@ ACE_Sched_Params::next_priority (const Policy policy,
(!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
// including STHREADS, and PTHREADS
- const int max = priority_max (policy, scope);
+ int const max = priority_max (policy, scope);
return priority < max ? priority + 1 : max;
+#elif defined (ACE_VXWORKS)
+ return priority > priority_max (policy, scope)
+ ? priority - 1
+ : priority_max (policy, scope);
#else
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
@@ -280,11 +288,7 @@ ACE_Sched_Params::previous_priority (const Policy policy,
const int priority,
const int scope)
{
-#if defined (ACE_VXWORKS)
- return priority < priority_min (policy, scope)
- ? priority + 1
- : priority_min (policy, scope);
-#elif defined (ACE_HAS_WTHREADS)
+#if defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
switch (priority)
@@ -310,9 +314,13 @@ ACE_Sched_Params::previous_priority (const Policy policy,
(!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
// including STHREADS and PTHREADS
- const int min = priority_min (policy, scope);
+ int const min = priority_min (policy, scope);
return priority > min ? priority - 1 : min;
+#elif defined (ACE_VXWORKS)
+ return priority < priority_min (policy, scope)
+ ? priority + 1
+ : priority_min (policy, scope);
#else
ACE_UNUSED_ARG (policy);
ACE_UNUSED_ARG (scope);
diff --git a/ACE/ace/Select_Reactor_Base.cpp b/ACE/ace/Select_Reactor_Base.cpp
index ae6ae6e410c..6fad8f4cc2a 100644
--- a/ACE/ace/Select_Reactor_Base.cpp
+++ b/ACE/ace/Select_Reactor_Base.cpp
@@ -686,17 +686,17 @@ ACE_Select_Reactor_Notify::notify (ACE_Event_Handler *event_handler,
notification_queue_.push_new_notification(buffer);
if (notification_required == -1)
- {
- return -1;
- }
+ {
+ return -1;
+ }
if (notification_required == 0)
- {
- // No failures, the handler is now owned by the notification queue
- safe_handler.release ();
+ {
+ // No failures, the handler is now owned by the notification queue
+ safe_handler.release ();
- return 0;
- }
+ return 0;
+ }
#endif /* ACE_HAS_REACTOR_NOTIFICATION_QUEUE */
ssize_t const n = ACE::send (this->notification_pipe_.write_handle (),
@@ -810,8 +810,7 @@ ACE_Select_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer)
// we've been passed.
if (buffer.eh_ != 0)
{
- ACE_Event_Handler *event_handler =
- buffer.eh_;
+ ACE_Event_Handler *event_handler = buffer.eh_;
bool const requires_reference_counting =
event_handler->reference_counting_policy ().value () ==
diff --git a/ACE/ace/Select_Reactor_Base.inl b/ACE/ace/Select_Reactor_Base.inl
index cfcb5349404..178a8373291 100644
--- a/ACE/ace/Select_Reactor_Base.inl
+++ b/ACE/ace/Select_Reactor_Base.inl
@@ -112,7 +112,7 @@ ACE_Event_Tuple::operator!= (const ACE_Event_Tuple &rhs) const
return !(*this == rhs);
}
-#if defined (ACE_WIN32_VC8)
+#if defined (ACE_WIN32_VC8) || defined (ACE_WIN32_VC9)
# pragma warning (push)
# pragma warning (disable:4355) /* Use of 'this' in initializer list */
#endif
@@ -133,7 +133,7 @@ ACE_Select_Reactor_Impl::ACE_Select_Reactor_Impl (bool ms)
, supress_renew_ (0)
{
}
-#if defined (ACE_WIN32_VC8)
+#if defined (ACE_WIN32_VC8) || defined (ACE_WIN32_VC9)
# pragma warning (pop)
#endif
diff --git a/ACE/ace/Select_Reactor_T.cpp b/ACE/ace/Select_Reactor_T.cpp
index 0831b77f7a9..0d94dffdba3 100644
--- a/ACE/ace/Select_Reactor_T.cpp
+++ b/ACE/ace/Select_Reactor_T.cpp
@@ -391,10 +391,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::open
ACE_Sig_Handler,
-1);
- if (this->signal_handler_ == 0)
- result = -1;
- else
- this->delete_signal_handler_ = 1;
+ this->delete_signal_handler_ = true;
}
// Allows the timer queue to be overridden.
@@ -404,10 +401,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::open
ACE_Timer_Heap,
-1);
- if (this->timer_queue_ == 0)
- result = -1;
- else
- this->delete_timer_queue_ = true;
+ this->delete_timer_queue_ = true;
}
// Allows the Notify_Handler to be overridden.
@@ -417,10 +411,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::open
ACE_Select_Reactor_Notify,
-1);
- if (this->notify_handler_ == 0)
- result = -1;
- else
- this->delete_notify_handler_ = true;
+ this->delete_notify_handler_ = true;
}
if (result != -1 && this->handler_rep_.open (size) == -1)
@@ -982,7 +973,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::is_suspended_i (ACE_HANDLE handl
return this->suspend_set_.rd_mask_.is_set (handle) ||
this->suspend_set_.wr_mask_.is_set (handle) ||
- this->suspend_set_.ex_mask_.is_set (handle) ;
+ this->suspend_set_.ex_mask_.is_set (handle);
}
@@ -1073,7 +1064,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::wait_for_multiple_events
{
ACE_TRACE ("ACE_Select_Reactor_T::wait_for_multiple_events");
ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout;
+ ACE_Time_Value *this_timeout = 0;
int number_of_active_handles = this->any_ready (dispatch_set);
diff --git a/ACE/ace/Service_Config.cpp b/ACE/ace/Service_Config.cpp
index 22cf75a3b88..02fc863790c 100644
--- a/ACE/ace/Service_Config.cpp
+++ b/ACE/ace/Service_Config.cpp
@@ -47,7 +47,7 @@ ACE_Service_Config_Guard::ACE_Service_Config_Guard (ACE_Service_Gestalt * psg)
{
if (ACE::debug ())
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<ctor=%@>")
+ ACE_TEXT ("ACE (%P|%t) SCG:<ctor=%@>")
ACE_TEXT (" - config=%@ repo=%@ superceded by repo=%@\n"),
this,
this->saved_,
@@ -65,7 +65,7 @@ ACE_Service_Config_Guard::~ACE_Service_Config_Guard (void)
if (ACE::debug ())
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<dtor=%@>")
+ ACE_TEXT ("ACE (%P|%t) SCG:<dtor=%@>")
ACE_TEXT (" - new repo=%@\n"),
this,
this->saved_->repo_));
@@ -179,7 +179,7 @@ ACE_Service_Config::open_i (const ACE_TCHAR program_name[],
if (ACE::debug ())
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) SC::open_i - this=%@, opened=%d, ")
+ ACE_TEXT ("ACE (%P|%t) SC::open_i - this=%@, opened=%d, ")
ACE_TEXT ("loadstatics=%d\n"),
this, this->is_opened_, this->no_static_svcs_));
@@ -263,8 +263,9 @@ ACE_Service_Config::open_i (const ACE_TCHAR program_name[],
{
ACE_Sig_Set ss;
ss.sig_add (ACE_Service_Config::signum_);
- if (ACE_Reactor::instance ()->register_handler
- (ss, ACE_Service_Config::signal_handler_) == -1)
+ if ((ACE_Reactor::instance () != 0) &&
+ (ACE_Reactor::instance ()->register_handler
+ (ss, ACE_Service_Config::signal_handler_) == -1))
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("can't register signal handler\n")));
}
@@ -326,7 +327,7 @@ ACE_Service_Config::static_svcs (void)
return ACE_Service_Config::instance ();
}
-/// Return the global configuration instance. Allways returns the same
+/// Return the global configuration instance. Always returns the same
/// instance
ACE_Service_Config *
ACE_Service_Config::global (void)
@@ -380,6 +381,9 @@ ACE_Service_Config::ACE_Service_Config (bool ignore_static_svcs,
: ACE_Service_Gestalt (size, false, ignore_static_svcs)
{
ACE_TRACE ("ACE_Service_Config::ACE_Service_Config");
+#if defined (ACE_HAS_TSS_EMULATION)
+ ACE_Object_Manager::init_tss ();
+#endif
this->tss_.ts_object (this);
ACE_Service_Config::signum_ = signum;
}
@@ -447,7 +451,9 @@ ACE_Service_Config::ACE_Service_Config (const ACE_TCHAR program_name[],
: ACE_Service_Gestalt (ACE_Service_Repository::DEFAULT_SIZE, false)
{
ACE_TRACE ("ACE_Service_Config::ACE_Service_Config");
-
+#if defined (ACE_HAS_TSS_EMULATION)
+ ACE_Object_Manager::init_tss ();
+#endif
this->tss_.ts_object (this);
if (this->open (program_name,
logger_key) == -1 && errno != ENOENT)
diff --git a/ACE/ace/Service_Config.inl b/ACE/ace/Service_Config.inl
index 582d4a3cb68..1cc6e35fe1d 100644
--- a/ACE/ace/Service_Config.inl
+++ b/ACE/ace/Service_Config.inl
@@ -51,7 +51,6 @@ ACE_Service_Config::parse_args (int argc, ACE_TCHAR *argv[])
return ACE_Service_Config::current ()->parse_args (argc, argv);
}
-
/// Return the configuration instance, considered "global" in the
/// current thread. This may be the same as instance(), but on some
/// occasions, it may be a different one. For example,
@@ -63,7 +62,6 @@ ACE_Service_Config::instance (void)
return ACE_Service_Config::global ()->tss_;
}
-
/// Return the configuration instance, considered "global" in the
/// current thread. This may be the same as instance(), but on some
/// occasions, it may be a different one. For example,
@@ -83,16 +81,14 @@ ACE_Service_Config::current (ACE_Service_Gestalt *newcurrent)
}
-// Compare two service descriptors for equality.
-
+/// Compare two service descriptors for equality.
ACE_INLINE bool
ACE_Static_Svc_Descriptor::operator== (ACE_Static_Svc_Descriptor &d) const
{
return ACE_OS::strcmp (name_, d.name_) == 0;
}
-// Compare two service descriptors for inequality.
-
+/// Compare two service descriptors for inequality.
ACE_INLINE bool
ACE_Static_Svc_Descriptor::operator!= (ACE_Static_Svc_Descriptor &d) const
{
@@ -105,8 +101,7 @@ ACE_Service_Config::signal_handler (ACE_Sig_Adapter *signal_handler)
signal_handler_ = signal_handler;
}
-// Initialize and activate a statically linked service.
-
+/// Initialize and activate a statically linked service.
ACE_INLINE int
ACE_Service_Config::initialize (const ACE_TCHAR *svc_name,
const ACE_TCHAR *parameters)
@@ -116,9 +111,8 @@ ACE_Service_Config::initialize (const ACE_TCHAR *svc_name,
parameters);
}
-// Dynamically link the shared object file and retrieve a pointer to
-// the designated shared object in this file.
-
+/// Dynamically link the shared object file and retrieve a pointer to
+/// the designated shared object in this file.
ACE_INLINE int
ACE_Service_Config::initialize (const ACE_Service_Type *sr,
const ACE_TCHAR *parameters)
@@ -142,8 +136,8 @@ ACE_Service_Config::process_directive (const ACE_TCHAR directive[])
return ACE_Service_Config::current ()->process_directive (directive);
}
-// Process service configuration requests as indicated in the queue of
-// svc.conf files.
+/// Process service configuration requests as indicated in the queue of
+/// svc.conf files.
ACE_INLINE int
ACE_Service_Config::process_directives (void)
{
diff --git a/ACE/ace/Svc_Conf.h b/ACE/ace/Svc_Conf.h
index a62da127abf..2038519c6f7 100644
--- a/ACE/ace/Svc_Conf.h
+++ b/ACE/ace/Svc_Conf.h
@@ -36,14 +36,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// The following yylex() declarations require support for reentrant
// parser generation (e.g. from GNU Bison).
-#if defined (DEBUGGING)
-#if defined (ACE_YY_DECL)
-#undef ACE_YY_DECL
-#endif /* ACE_YY_DECL */
-#define ACE_YY_DECL extern "C" char *ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM)
-#else
#define ACE_YY_DECL extern "C" int ace_yylex (ACE_YYSTYPE *ace_yylval, void *ACE_YYLEX_PARAM)
-#endif /* DEBUGGING */
// Forward declarations
class ACE_Location_Node;
diff --git a/ACE/ace/Svc_Conf.y b/ACE/ace/Svc_Conf.y
index 87e44928bc2..6b8ee2a1ad7 100644
--- a/ACE/ace/Svc_Conf.y
+++ b/ACE/ace/Svc_Conf.y
@@ -63,7 +63,7 @@ svc_config_entries
{
if ($2 != 0)
{
- $2->apply (ACE_SVC_CONF_PARAM->config, ACE_SVC_CONF_PARAM->yyerrno);
+ $2->apply (ACE_SVC_CONF_PARAM->config, ACE_SVC_CONF_PARAM->yyerrno);
delete $2;
}
ACE_SVC_CONF_PARAM->obstack.release ();
@@ -404,13 +404,13 @@ ace_get_module (ACE_Service_Type const * sr,
return const_cast<ACE_Module_Type *> (mt);
}
-#if defined (DEBUGGING)
+#if defined (SVC_CONF_Y_DEBUGGING)
// Main driver program.
int
main (int argc, char *argv[])
{
- ACE_Svc_Conf_Param param (stdin);
+ ACE_Svc_Conf_Param param (0, stdin);
// Try to reopen any filename argument to use YYIN.
if (argc > 1 && (yyin = freopen (argv[1], "r", stdin)) == 0)
@@ -418,7 +418,7 @@ main (int argc, char *argv[])
return ::yyparse (&param);
}
-#endif /* DEBUGGING */
+#endif /* SVC_CONF_Y_DEBUGGING */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Svc_Conf_y.cpp b/ACE/ace/Svc_Conf_y.cpp
index d4cee59ec0e..3aa03876a5c 100644
--- a/ACE/ace/Svc_Conf_y.cpp
+++ b/ACE/ace/Svc_Conf_y.cpp
@@ -1,5 +1,5 @@
/* A Bison parser, made by GNU Bison 2.0. */
-
+
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
@@ -1738,21 +1738,21 @@ ace_get_module (ACE_Service_Type const * sr,
return const_cast<ACE_Module_Type *> (mt);
}
-#if defined (DEBUGGING)
+#if defined (SVC_CONF_Y_DEBUGGING)
// Main driver program.
int
main (int argc, char *argv[])
{
- ACE_Svc_Conf_Param param (stdin);
+ ACE_Svc_Conf_Param param (0, stdin);
// Try to reopen any filename argument to use ACE_YYIN.
if (argc > 1 && (ace_yyin = freopen (argv[1], "r", stdin)) == 0)
- (void) ACE_OS::ACE_OS::fprintf (stderr, ACE_TEXT ("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
+ (void) ACE_OS::fprintf (stderr, ACE_TEXT ("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
return ::ace_yyparse (&param);
}
-#endif /* DEBUGGING */
+#endif /* SVC_CONF_Y_DEBUGGING */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/TP_Reactor.cpp b/ACE/ace/TP_Reactor.cpp
index ccc8c5383c6..4216fa3db15 100644
--- a/ACE/ace/TP_Reactor.cpp
+++ b/ACE/ace/TP_Reactor.cpp
@@ -170,20 +170,18 @@ ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time)
// Update the countdown to reflect time waiting for the token.
countdown.update ();
- return this->dispatch_i (max_wait_time,
- guard);
+ return this->dispatch_i (max_wait_time, guard);
}
int
ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
ACE_TP_Token_Guard &guard)
{
- int event_count =
- this->get_event_for_dispatching (max_wait_time);
+ int event_count = this->get_event_for_dispatching (max_wait_time);
// We use this count to detect potential infinite loops as described
// in bug 2540.
- int initial_event_count = event_count;
+ int const initial_event_count = event_count;
int result = 0;
@@ -205,8 +203,7 @@ ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
// now is not the right thing...
//
// @@ We need to do better..
- return this->handle_signals (event_count,
- guard);
+ return this->handle_signals (event_count, guard);
}
#endif // #if 0
@@ -221,8 +218,7 @@ ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
// need to do that. In the future we *may* have the timers also
// returned through the <event_count>. Just passing that along for
// that day.
- result = this->handle_timer_events (event_count,
- guard);
+ result = this->handle_timer_events (event_count, guard);
if (result > 0)
return result;
@@ -234,8 +230,7 @@ ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
// Next dispatch the notification handlers (if there are any to
// dispatch). These are required to handle multiple-threads
// that are trying to update the <Reactor>.
- result = this->handle_notify_events (event_count,
- guard);
+ result = this->handle_notify_events (event_count, guard);
if (result > 0)
return result;
@@ -246,12 +241,10 @@ ACE_TP_Reactor::dispatch_i (ACE_Time_Value *max_wait_time,
if (event_count > 0)
{
// Handle socket events
- result = this->handle_socket_events (event_count,
- guard);
+ result = this->handle_socket_events (event_count, guard);
}
- if (event_count != 0
- && event_count == initial_event_count)
+ if (event_count != 0 && event_count == initial_event_count)
{
this->state_changed_ = true;
}
@@ -327,27 +320,21 @@ ACE_TP_Reactor::handle_timer_events (int & /*event_count*/,
// time.
ACE_Timer_Node_Dispatch_Info info;
- if (this->timer_queue_->dispatch_info (cur_time,
- info))
+ if (this->timer_queue_->dispatch_info (cur_time, info))
{
const void *upcall_act = 0;
// Preinvoke.
- this->timer_queue_->preinvoke (info,
- cur_time,
- upcall_act);
+ this->timer_queue_->preinvoke (info, cur_time, upcall_act);
// Release the token before dispatching notifies...
guard.release_token ();
// call the functor
- this->timer_queue_->upcall (info,
- cur_time);
+ this->timer_queue_->upcall (info, cur_time);
// Postinvoke
- this->timer_queue_->postinvoke (info,
- cur_time,
- upcall_act);
+ this->timer_queue_->postinvoke (info, cur_time, upcall_act);
// We have dispatched a timer
return 1;
@@ -361,8 +348,7 @@ ACE_TP_Reactor::handle_notify_events (int & /*event_count*/,
ACE_TP_Token_Guard &guard)
{
// Get the handle on which notify calls could have occured
- ACE_HANDLE notify_handle =
- this->get_notify_handle ();
+ ACE_HANDLE notify_handle = this->get_notify_handle ();
int result = 0;
@@ -379,8 +365,7 @@ ACE_TP_Reactor::handle_notify_events (int & /*event_count*/,
// Keep reading notifies till we empty it or till we have a
// dispatchable buffer
- while (this->notify_handler_->read_notify_pipe (notify_handle,
- buffer) > 0)
+ while (this->notify_handler_->read_notify_pipe (notify_handle, buffer) > 0)
{
// Just figure out whether we can read any buffer that has
// dispatchable info. If not we have just been unblocked by
@@ -488,8 +473,7 @@ ACE_TP_Reactor::get_event_for_dispatching (ACE_Time_Value *max_wait_time)
this->ready_set_.ex_mask_.sync (this->ready_set_.ex_mask_.max_set ());
}
- return this->wait_for_multiple_events (this->ready_set_,
- max_wait_time);
+ return this->wait_for_multiple_events (this->ready_set_, max_wait_time);
}
int
diff --git a/ACE/ace/Task.cpp b/ACE/ace/Task.cpp
index 59e97364122..24cd50da148 100644
--- a/ACE/ace/Task.cpp
+++ b/ACE/ace/Task.cpp
@@ -19,11 +19,11 @@ ACE_Task_Base::ACE_Task_Base (ACE_Thread_Manager *thr_man)
thr_mgr_ (thr_man),
flags_ (0),
grp_id_ (-1)
-#if !defined (ACE_MVS)
+#if !(defined (ACE_MVS) || defined(__TANDEM))
,last_thread_id_ (0)
#endif /* !defined (ACE_MVS) */
{
-#if defined (ACE_MVS)
+#if (defined (ACE_MVS) || defined(__TANDEM))
ACE_OS::memset( &this->last_thread_id_, '\0', sizeof( this->last_thread_id_ ));
#endif /* defined (ACE_MVS) */
}
@@ -126,7 +126,8 @@ ACE_Task_Base::activate (long flags,
ACE_hthread_t thread_handles[],
void *stack[],
size_t stack_size[],
- ACE_thread_t thread_ids[])
+ ACE_thread_t thread_ids[],
+ const char* thr_name[])
{
ACE_TRACE ("ACE_Task_Base::activate");
@@ -171,7 +172,8 @@ ACE_Task_Base::activate (long flags,
task,
thread_handles,
stack,
- stack_size);
+ stack_size,
+ thr_name);
else
// thread names were specified
grp_spawned =
@@ -185,7 +187,8 @@ ACE_Task_Base::activate (long flags,
stack,
stack_size,
thread_handles,
- task);
+ task,
+ thr_name);
if (grp_spawned == -1)
{
// If spawn_n fails, restore original thread count.
@@ -196,7 +199,7 @@ ACE_Task_Base::activate (long flags,
if (this->grp_id_ == -1)
this->grp_id_ = grp_spawned;
-#if defined (ACE_MVS)
+#if defined (ACE_MVS) || defined(__TANDEM)
ACE_OS::memcpy( &this->last_thread_id_, '\0', sizeof(this->last_thread_id_));
#else
this->last_thread_id_ = 0; // Reset to prevent inadvertant match on ID
@@ -217,6 +220,7 @@ ACE_Task_Base::activate (long flags,
ACE_UNUSED_ARG (stack);
ACE_UNUSED_ARG (stack_size);
ACE_UNUSED_ARG (thread_ids);
+ ACE_UNUSED_ARG (thr_name);
ACE_NOTSUP_RETURN (-1);
}
#endif /* ACE_MT_SAFE */
@@ -270,7 +274,7 @@ ACE_Task_Base::svc_run (void *args)
// Call the Task's svc() hook method.
int svc_status = t->svc ();
ACE_THR_FUNC_RETURN status;
-#if (defined (__BORLANDC__) && (__BORLANDC__ < 0x600)) || defined (__MINGW32__) || (defined (_MSC_VER) && (_MSC_VER <= 1500)) || (defined (ACE_WIN32) && defined (__DCC__))
+#if (defined (__BORLANDC__) && (__BORLANDC__ < 0x600)) || defined (__MINGW32__) || (defined (_MSC_VER) && (_MSC_VER <= 1500)) || (defined (ACE_WIN32) && defined (__DCC__)) || (defined (ACE_VXWORKS) && (ACE_VXWORKS == 0x660) && defined (ACE_HAS_VXTHREADS))
// Some compilers complain about reinterpret_cast from int to unsigned long...
status = static_cast<ACE_THR_FUNC_RETURN> (svc_status);
#else
diff --git a/ACE/ace/Task.h b/ACE/ace/Task.h
index b289f4e756f..757cf651323 100644
--- a/ACE/ace/Task.h
+++ b/ACE/ace/Task.h
@@ -185,7 +185,8 @@ public:
ACE_hthread_t thread_handles[] = 0,
void *stack[] = 0,
size_t stack_size[] = 0,
- ACE_thread_t thread_ids[] = 0);
+ ACE_thread_t thread_ids[] = 0,
+ const char* thr_name[] = 0);
/**
* Block until there are no more threads running in this task.
diff --git a/ACE/ace/Thread.cpp b/ACE/ace/Thread.cpp
index ffdf195c40c..fab00ea5e6b 100644
--- a/ACE/ace/Thread.cpp
+++ b/ACE/ace/Thread.cpp
@@ -22,7 +22,8 @@ ACE_Thread::spawn_n (size_t n,
long priority,
void *stack[],
size_t stack_size[],
- ACE_Thread_Adapter *thread_adapter)
+ ACE_Thread_Adapter *thread_adapter,
+ const char* thr_name[])
{
ACE_TRACE ("ACE_Thread::spawn_n");
ACE_thread_t t_id;
@@ -38,7 +39,8 @@ ACE_Thread::spawn_n (size_t n,
priority,
stack == 0 ? 0 : stack[i],
stack_size == 0 ? ACE_DEFAULT_THREAD_STACKSIZE : stack_size[i],
- thread_adapter) != 0)
+ thread_adapter,
+ thr_name == 0 ? 0 : &thr_name[i]) != 0)
break;
return i;
@@ -54,17 +56,18 @@ ACE_Thread::spawn_n (ACE_thread_t thread_ids[],
void *stack[],
size_t stack_size[],
ACE_hthread_t thread_handles[],
- ACE_Thread_Adapter *thread_adapter)
+ ACE_Thread_Adapter *thread_adapter,
+ const char* thr_name[])
{
ACE_TRACE ("ACE_Thread::spawn_n");
- size_t i;
+ size_t i = 0;
for (i = 0; i < n; i++)
{
ACE_thread_t t_id;
ACE_hthread_t t_handle;
- int result =
+ int const result =
ACE_OS::thr_create (func,
arg,
flags,
@@ -73,7 +76,8 @@ ACE_Thread::spawn_n (ACE_thread_t thread_ids[],
priority,
stack == 0 ? 0 : stack[i],
stack_size == 0 ? ACE_DEFAULT_THREAD_STACKSIZE : stack_size[i],
- thread_adapter);
+ thread_adapter,
+ thr_name == 0 ? 0 : &thr_name[i]);
if (result == 0)
{
diff --git a/ACE/ace/Thread.h b/ACE/ace/Thread.h
index f343a05484a..9800997df16 100644
--- a/ACE/ace/Thread.h
+++ b/ACE/ace/Thread.h
@@ -89,7 +89,8 @@ public:
long priority = ACE_DEFAULT_THREAD_PRIORITY,
void *stack = 0,
size_t stack_size = ACE_DEFAULT_THREAD_STACKSIZE,
- ACE_Thread_Adapter *thread_adapter = 0);
+ ACE_Thread_Adapter *thread_adapter = 0,
+ const char** thr_name = 0);
/**
* Spawn N new threads, which execute @a func with argument @a arg (if
@@ -112,12 +113,13 @@ public:
long priority = ACE_DEFAULT_THREAD_PRIORITY,
void *stack[] = 0,
size_t stack_size[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
+ ACE_Thread_Adapter *thread_adapter = 0,
+ const char* thr_name[] = 0);
/**
- * Spawn @a n new threads, which execute @a func with argument <arg>
- * (if <thread_adapter> is non-0 then @a func and <args> are ignored
- * and are obtained from <thread_adapter>). The thread_ids of
+ * Spawn @a n new threads, which execute @a func with argument @a arg
+ * (if @a thread_adapter is non-0 then @a func and @a args are ignored
+ * and are obtained from @a thread_adapter). The thread_ids of
* successfully spawned threads will be placed into the <thread_ids>
* buffer (which must be the same size as @a n). If @a stack != 0 it
* is assumed to be an array of @a n pointers to the base of the
@@ -141,7 +143,8 @@ public:
void *stack[] = 0,
size_t stack_size[] = 0,
ACE_hthread_t thread_handles[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
+ ACE_Thread_Adapter *thread_adapter = 0,
+ const char* thr_name[] = 0);
/**
* Wait for one or more threads to exit and reap their exit status.
diff --git a/ACE/ace/Thread.inl b/ACE/ace/Thread.inl
index ba635c6b2f0..6c292ab27cd 100644
--- a/ACE/ace/Thread.inl
+++ b/ACE/ace/Thread.inl
@@ -82,7 +82,8 @@ ACE_Thread::spawn (ACE_THR_FUNC func,
long priority,
void *thr_stack,
size_t thr_stack_size,
- ACE_Thread_Adapter *thread_adapter)
+ ACE_Thread_Adapter *thread_adapter,
+ const char** thr_name)
{
ACE_TRACE ("ACE_Thread::spawn");
@@ -94,7 +95,8 @@ ACE_Thread::spawn (ACE_THR_FUNC func,
priority,
thr_stack,
thr_stack_size,
- thread_adapter);
+ thread_adapter,
+ thr_name);
}
ACE_INLINE int
diff --git a/ACE/ace/Thread_Manager.cpp b/ACE/ace/Thread_Manager.cpp
index 569850554df..f9a6b934bde 100644
--- a/ACE/ace/Thread_Manager.cpp
+++ b/ACE/ace/Thread_Manager.cpp
@@ -550,7 +550,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
int grp_id,
void *stack,
size_t stack_size,
- ACE_Task_Base *task)
+ ACE_Task_Base *task,
+ const char** thr_name)
{
// First, threads created by Thread Manager should not be daemon threads.
// Using assertion is probably a bit too strong. However, it helps
@@ -591,23 +592,6 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
ACE_TRACE ("ACE_Thread_Manager::spawn_i");
ACE_hthread_t thr_handle;
-#if defined (ACE_HAS_VXTHREADS)
- if (t_handle != 0)
- {
- thr_handle = *t_handle;
- }
- else
- {
- ACE_NEW_RETURN (thr_handle,
- char[16],
- -1);
- // Mark the thread ID to show that the ACE_Thread_Manager
- // allocated it.
- thr_handle[0] = ACE_THR_ID_ALLOCATED;
- thr_handle[1] = '\0';
- }
-#endif /* !ACE_HAS_VXTHREADS */
-
ACE_thread_t thr_id;
if (t_id == 0)
t_id = &thr_id;
@@ -625,7 +609,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
priority,
stack,
stack_size,
- thread_args);
+ thread_args,
+ thr_name);
if (result != 0)
{
@@ -680,7 +665,8 @@ ACE_Thread_Manager::spawn (ACE_THR_FUNC func,
long priority,
int grp_id,
void *stack,
- size_t stack_size)
+ size_t stack_size,
+ const char** thr_name)
{
ACE_TRACE ("ACE_Thread_Manager::spawn");
@@ -701,7 +687,8 @@ ACE_Thread_Manager::spawn (ACE_THR_FUNC func,
grp_id,
stack,
stack_size,
- 0) == -1)
+ 0,
+ thr_name) == -1)
return -1;
return grp_id;
@@ -719,7 +706,8 @@ ACE_Thread_Manager::spawn_n (size_t n,
ACE_Task_Base *task,
ACE_hthread_t thread_handles[],
void *stack[],
- size_t stack_size[])
+ size_t stack_size[],
+ const char* thr_name[])
{
ACE_TRACE ("ACE_Thread_Manager::spawn_n");
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
@@ -740,7 +728,8 @@ ACE_Thread_Manager::spawn_n (size_t n,
grp_id,
stack == 0 ? 0 : stack[i],
stack_size == 0 ? ACE_DEFAULT_THREAD_STACKSIZE : stack_size[i],
- task) == -1)
+ task,
+ thr_name == 0 ? 0 : &thr_name [i]) == -1)
return -1;
}
@@ -760,7 +749,8 @@ ACE_Thread_Manager::spawn_n (ACE_thread_t thread_ids[],
void *stack[],
size_t stack_size[],
ACE_hthread_t thread_handles[],
- ACE_Task_Base *task)
+ ACE_Task_Base *task,
+ const char* thr_name[])
{
ACE_TRACE ("ACE_Thread_Manager::spawn_n");
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
@@ -781,7 +771,8 @@ ACE_Thread_Manager::spawn_n (ACE_thread_t thread_ids[],
grp_id,
stack == 0 ? 0 : stack[i],
stack_size == 0 ? ACE_DEFAULT_THREAD_STACKSIZE : stack_size[i],
- task) == -1)
+ task,
+ thr_name == 0 ? 0 : &thr_name [i]) == -1)
return -1;
}
@@ -924,14 +915,6 @@ ACE_Thread_Manager::remove_thr (ACE_Thread_Descriptor *td,
td->tm_ = 0;
this->thr_list_.remove (td);
-#if defined (ACE_HAS_VXTHREADS)
- // Delete the thread ID, if the ACE_Thread_Manager allocated it.
- if (td->thr_handle_ && td->thr_handle_[0] == ACE_THR_ID_ALLOCATED)
- {
- delete [] td->thr_handle_;
- }
-#endif /* ACE_HAS_VXTHREADS */
-
#if defined (ACE_WIN32)
if (close_handler != 0)
::CloseHandle (td->thr_handle_);
@@ -1429,12 +1412,6 @@ ACE_Thread_Manager::join (ACE_thread_t tid, ACE_THR_FUNC_RETURN *status)
# endif /* ! _AIX */
return -1;
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&tdb->thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
-
delete tdb;
return 0;
// return immediately if we've found the thread we want to join.
@@ -1475,12 +1452,6 @@ ACE_Thread_Manager::join (ACE_thread_t tid, ACE_THR_FUNC_RETURN *status)
# endif /* ! _AIX */
return -1;
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
-
- ::pthread_detach (&tdb.thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
return 0;
}
@@ -1548,12 +1519,6 @@ ACE_Thread_Manager::wait_grp (int grp_id)
{
if (ACE_Thread::join (copy_table[i].thr_handle_) == -1)
result = -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&copy_table[i].thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
}
delete [] copy_table;
@@ -1565,13 +1530,13 @@ ACE_Thread_Manager::wait_grp (int grp_id)
// slot.
ACE_THR_FUNC_RETURN
-ACE_Thread_Manager::exit (ACE_THR_FUNC_RETURN status, int do_thr_exit)
+ACE_Thread_Manager::exit (ACE_THR_FUNC_RETURN status, bool do_thread_exit)
{
ACE_TRACE ("ACE_Thread_Manager::exit");
#if defined (ACE_WIN32)
// Remove detached thread handle.
- if (do_thr_exit)
+ if (do_thread_exit)
{
#if 0
// @@ This callback is now taken care of by TSS_Cleanup. Do we
@@ -1595,7 +1560,7 @@ ACE_Thread_Manager::exit (ACE_THR_FUNC_RETURN status, int do_thr_exit)
// Find the thread id, but don't use the cache. It might have been
// deleted already.
- ACE_thread_t id = ACE_OS::thr_self ();
+ ACE_thread_t const id = ACE_OS::thr_self ();
ACE_Thread_Descriptor* td = this->find_thread (id);
if (td != 0)
{
@@ -1605,7 +1570,7 @@ ACE_Thread_Manager::exit (ACE_THR_FUNC_RETURN status, int do_thr_exit)
}
}
- if (do_thr_exit)
+ if (do_thread_exit)
{
ACE_Thread::exit (status);
// On reasonable systems <ACE_Thread::exit> should not return.
@@ -1700,11 +1665,6 @@ ACE_Thread_Manager::wait (const ACE_Time_Value *timeout,
// Detached handles shouldn't reached here.
(void) ACE_Thread::join (item->thr_handle_);
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without
- // THR_DETACHED were detached in ACE_OS::thr_create ().
- ::pthread_detach (&item->thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
delete item;
}
@@ -1817,12 +1777,6 @@ ACE_Thread_Manager::wait_task (ACE_Task_Base *task)
{
if (ACE_Thread::join (copy_table[i].thr_handle_) == -1)
result = -1;
-
-# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)
- // Must explicitly detach threads. Threads without THR_DETACHED
- // were detached in ACE_OS::thr_create ().
- ::pthread_detach (&copy_table[i].thr_handle_);
-# endif /* ACE_HAS_PTHREADS_DRAFT4 && ACE_LACKS_SETDETACH */
}
delete [] copy_table;
diff --git a/ACE/ace/Thread_Manager.h b/ACE/ace/Thread_Manager.h
index cd7b477816a..bccfab12e1e 100644
--- a/ACE/ace/Thread_Manager.h
+++ b/ACE/ace/Thread_Manager.h
@@ -461,22 +461,8 @@ public:
*/
int close (void);
- // The <ACE_thread_t> * argument to each of the <spawn> family member
- // functions is interpreted and used as shown in the following
- // table. NOTE: the final option, to provide task names, is _only_
- // supported on VxWorks!
- //
- // Value of ACE_thread_t * argument Use Platforms
- // ================================ ========================== =========
- // 0 Not used. All
- // non-0 (and points to 0 char * The task name is passed All
- // on VxWorks) back in the char *.
- // non-0, points to non-0 char * The char * is used as VxWorks only
- // the task name. The
- // argument is not modified.
-
/**
- * Create a new thread, which executes @a func with argument <arg>.
+ * Create a new thread, which executes @a func with argument @a arg.
* Returns: on success a unique group id that can be used to control
* other threads added to the same group. On failure, returns -1.
*/
@@ -488,10 +474,11 @@ public:
long priority = ACE_DEFAULT_THREAD_PRIORITY,
int grp_id = -1,
void *stack = 0,
- size_t stack_size = ACE_DEFAULT_THREAD_STACKSIZE);
+ size_t stack_size = ACE_DEFAULT_THREAD_STACKSIZE,
+ const char** thr_name = 0);
/**
- * Spawn N new threads, which execute @a func with argument <arg>.
+ * Spawn N new threads, which execute @a func with argument @a arg.
* If <thread_ids> != 0 the thread_ids of successfully spawned
* threads will be placed into the <thread_ids> buffer (which must
* be the same size as @a n). If @a stack != 0 it is assumed to be an
@@ -528,10 +515,11 @@ public:
ACE_Task_Base *task = 0,
ACE_hthread_t thread_handles[] = 0,
void *stack[] = 0,
- size_t stack_size[] = 0);
+ size_t stack_size[] = 0,
+ const char* thr_name[] = 0);
/**
- * Spawn N new threads, which execute @a func with argument <arg>.
+ * Spawn N new threads, which execute @a func with argument @a arg.
* If <thread_ids> != 0 the thread_ids of successfully spawned
* threads will be placed into the <thread_ids> buffer (which must
* be the same size as @a n). If @a stack != 0 it is assumed to be an
@@ -569,7 +557,8 @@ public:
void *stack[] = 0,
size_t stack_size[] = 0,
ACE_hthread_t thread_handles[] = 0,
- ACE_Task_Base *task = 0);
+ ACE_Task_Base *task = 0,
+ const char* thr_name[] = 0);
/**
* Called to clean up when a thread exits.
@@ -581,7 +570,7 @@ public:
* Should _not_ be called by main thread.
*/
ACE_THR_FUNC_RETURN exit (ACE_THR_FUNC_RETURN status = 0,
- int do_thread_exit = 1);
+ bool do_thread_exit = true);
/**
* Block until there are no more threads running in this thread
@@ -590,7 +579,7 @@ public:
* @param timeout is treated as "absolute" time by default, but this
* can be changed to "relative" time by setting the @c
* use_absolute_time to false.
- * @param abandon_detached_threads If non-0, @c wait() will first
+ * @param abandon_detached_threads If true, @c wait() will first
* check thru its thread list for
* threads with THR_DETACHED or
* THR_DAEMON flags set and remove
@@ -602,11 +591,11 @@ public:
* flags are set or not unless it is
* called with @c
* abandon_detached_threads flag set.
- * @param use_absolute_time If non-0 then treat @c timeout as
+ * @param use_absolute_time If true then treat @c timeout as
* absolute time, else relative time.
* @return 0 on success * and -1 on failure.
*
- * NOTE that if this function is called while the @c
+ * @note If this function is called while the @c
* ACE_Object_Manager is shutting down (as a result of program
* rundown via @c ACE::fini()), it will not wait for any threads to
* complete. If you must wait for threads spawned by this thread
@@ -618,7 +607,7 @@ public:
bool abandon_detached_threads = false,
bool use_absolute_time = true);
- /// Join a thread specified by <tid>. Do not wait on a detached thread.
+ /// Join a thread specified by @a tid. Do not wait on a detached thread.
int join (ACE_thread_t tid, ACE_THR_FUNC_RETURN *status = 0);
/**
@@ -665,8 +654,8 @@ public:
int suspend_grp (int grp_id);
/**
- * True if <t_id> is inactive (i.e., suspended), else false. Always
- * return false if <t_id> is not managed by the Thread_Manager.
+ * True if @a t_id is inactive (i.e., suspended), else false. Always
+ * return false if @a t_id is not managed by the Thread_Manager.
*/
int testsuspend (ACE_thread_t t_id);
@@ -681,8 +670,8 @@ public:
int resume_grp (int grp_id);
/**
- * True if <t_id> is active (i.e., resumed), else false. Always
- * return false if <t_id> is not managed by the Thread_Manager.
+ * True if @a t_id is active (i.e., resumed), else false. Always
+ * return false if @a t_id is not managed by the Thread_Manager.
*/
int testresume (ACE_thread_t t_id);
@@ -690,16 +679,18 @@ public:
/**
* Send @a signum to all stopped threads. Not supported on platforms
* that do not have advanced signal support, such as Win32.
+ */
+ int kill_all (int signum);
+ /**
* Send the @a signum to a single thread. Not supported on platforms
* that do not have advanced signal support, such as Win32.
+ */
+ int kill (ACE_thread_t, int signum);
+ /**
* Send @a signum to a group of threads, not supported on platforms
* that do not have advanced signal support, such as Win32.
*/
- int kill_all (int signum);
- int kill (ACE_thread_t,
- int signum);
- int kill_grp (int grp_id,
- int signum);
+ int kill_grp (int grp_id, int signum);
// = Cancel methods, which provides a cooperative thread-termination mechanism (will not block).
/**
@@ -718,15 +709,15 @@ public:
int cancel_grp (int grp_id, int async_cancel = 0);
/**
- * True if <t_id> is cancelled, else false. Always return false if
- * <t_id> is not managed by the Thread_Manager.
+ * True if @a t_id is cancelled, else false. Always return false if
+ * @a t_id is not managed by the Thread_Manager.
*/
int testcancel (ACE_thread_t t_id);
/**
- * True if <t_id> has terminated (i.e., is no longer running),
+ * True if @a t_id has terminated (i.e., is no longer running),
* but the slot in the thread manager hasn't been reclaimed yet,
- * else false. Always return false if <t_id> is not managed by the
+ * else false. Always return false if @a t_id is not managed by the
* Thread_Manager.
*/
int testterminate (ACE_thread_t t_id);
@@ -773,8 +764,7 @@ public:
/**
* Send a signal @a signum to all threads in an ACE_Task.
*/
- int kill_task (ACE_Task_Base *task,
- int signum);
+ int kill_task (ACE_Task_Base *task, int signum);
/**
* Cancel all threads in an ACE_Task. If <async_cancel> is non-0,
@@ -987,7 +977,8 @@ protected:
int grp_id = -1,
void *stack = 0,
size_t stack_size = 0,
- ACE_Task_Base *task = 0);
+ ACE_Task_Base *task = 0,
+ const char** thr_name = 0);
/// Run the registered hooks when the thread exits.
void run_thread_exit_hooks (int i);
diff --git a/ACE/ace/Timer_Queue_Adapters.cpp b/ACE/ace/Timer_Queue_Adapters.cpp
index fff641ce613..96010773ad2 100644
--- a/ACE/ace/Timer_Queue_Adapters.cpp
+++ b/ACE/ace/Timer_Queue_Adapters.cpp
@@ -300,7 +300,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::activate (long flags,
ACE_hthread_t [],
void *stack[],
size_t stack_size[],
- ACE_thread_t thread_names[])
+ ACE_thread_t thread_ids[],
+ const char* thr_name[])
{
// Make sure to set this flag in case we were deactivated earlier.
this->active_ = true;
@@ -308,7 +309,7 @@ ACE_Thread_Timer_Queue_Adapter<TQ>::activate (long flags,
// Make sure that we only allow a single thread to be spawned for
// our adapter. Otherwise, too many weird things can happen.
return ACE_Task_Base::activate (flags, 1, 0, priority, grp_id, task, 0,
- stack, stack_size, thread_names);
+ stack, stack_size, thread_ids, thr_name);
}
# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
diff --git a/ACE/ace/Timer_Queue_Adapters.h b/ACE/ace/Timer_Queue_Adapters.h
index 96b7e33db24..08ea47075f3 100644
--- a/ACE/ace/Timer_Queue_Adapters.h
+++ b/ACE/ace/Timer_Queue_Adapters.h
@@ -186,7 +186,8 @@ public:
ACE_hthread_t thread_handles[] = 0,
void *stack[] = 0,
size_t stack_size[] = 0,
- ACE_thread_t thread_names[] = 0);
+ ACE_thread_t thread_ids[] = 0,
+ const char* thr_name[] = 0);
# if defined (ACE_HAS_DEFERRED_TIMER_COMMANDS)
diff --git a/ACE/ace/Token.cpp b/ACE/ace/Token.cpp
index 85fa9cf5b66..a209b02183d 100644
--- a/ACE/ace/Token.cpp
+++ b/ACE/ace/Token.cpp
@@ -13,10 +13,10 @@ ACE_RCSID(ace, Token, "$Id$")
#include "ace/Thread.h"
#include "ace/Log_Msg.h"
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -189,11 +189,11 @@ ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
ACE_TRACE ("ACE_Token::shared_acquire");
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
this->dump ();
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
- ACE_thread_t thr_id = ACE_Thread::self ();
+ ACE_thread_t const thr_id = ACE_Thread::self ();
// Nobody holds the token.
if (!this->in_use_)
@@ -255,14 +255,13 @@ ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
++ret;
}
- int timed_out = 0;
- int error = 0;
+ bool timed_out = false;
+ bool error = false;
// Sleep until we've got the token (ignore signals).
do
{
- int result = my_entry.wait (timeout,
- this->lock_);
+ int const result = my_entry.wait (timeout, this->lock_);
if (result == -1)
{
@@ -271,19 +270,19 @@ ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
if (errno == EINTR)
continue;
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
cerr << '(' << ACE_Thread::self () << ')'
<< " acquire: "
<< (errno == ETIME ? "timed out" : "error occurred")
<< endl;
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
// We come here if a timeout occurs or some serious
// ACE_Condition object error.
if (errno == ETIME)
- timed_out = 1;
+ timed_out = true;
else
- error = 1;
+ error = true;
// Stop the loop.
break;
@@ -295,10 +294,9 @@ ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
--this->waiters_;
queue->remove_entry (&my_entry);
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " acquire (UNBLOCKED)" << endl;
-#endif /* DEBUGGING */
+#if defined (ACE_TOKEN_DEBUGGING)
+ ACE_DEBUG ((LM_DEBUG, "(%t) ACE_Token::shared_acquire (UNBLOCKED)\n"));
+#endif /* ACE_TOKEN_DEBUGGING */
// If timeout occured
if (timed_out)
@@ -362,9 +360,9 @@ ACE_Token::renew (int requeue_position,
ACE_TRACE ("ACE_Token::renew");
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
this->dump ();
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
// ACE_ASSERT (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_));
// Check to see if there are any waiters worth giving up the lock
@@ -403,14 +401,13 @@ ACE_Token::renew (int requeue_position,
// Wakeup waiter.
this->wakeup_next_waiter ();
- int timed_out = 0;
- int error = 0;
+ bool timed_out = false;
+ bool error = false;
// Sleep until we've got the token (ignore signals).
do
{
- int result = my_entry.wait (timeout,
- this->lock_);
+ int const result = my_entry.wait (timeout, this->lock_);
if (result == -1)
{
@@ -419,19 +416,19 @@ ACE_Token::renew (int requeue_position,
if (errno == EINTR)
continue;
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
cerr << '(' << ACE_Thread::self () << ')'
<< " renew: "
<< (errno == ETIME ? "timed out" : "error occurred")
<< endl;
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
// We come here if a timeout occurs or some serious
// ACE_Condition object error.
if (errno == ETIME)
- timed_out = 1;
+ timed_out = true;
else
- error = 1;
+ error = true;
// Stop the loop.
break;
@@ -443,10 +440,9 @@ ACE_Token::renew (int requeue_position,
--this->waiters_;
this_threads_queue->remove_entry (&my_entry);
-#if defined (DEBUGGING)
- cerr << '(' << ACE_Thread::self () << ')'
- << " acquire (UNBLOCKED)" << endl;
-#endif /* DEBUGGING */
+#if defined (ACE_TOKEN_DEBUGGING)
+ ACE_DEBUG ((LM_DEBUG, "(%t) ACE_Token::renew (UNBLOCKED)\n"));
+#endif /* ACE_TOKEN_DEBUGGING */
// If timeout occured
if (timed_out)
@@ -485,11 +481,9 @@ ACE_Token::release (void)
ACE_TRACE ("ACE_Token::release");
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
- // ACE_ASSERT (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_));
-
-#if defined (DEBUGGING)
+#if defined (ACE_TOKEN_DEBUGGING)
this->dump ();
-#endif /* DEBUGGING */
+#endif /* ACE_TOKEN_DEBUGGING */
// Nested release...
if (this->nesting_level_ > 0)
diff --git a/ACE/ace/Token.h b/ACE/ace/Token.h
index 9344809ca51..81b2d7173af 100644
--- a/ACE/ace/Token.h
+++ b/ACE/ace/Token.h
@@ -29,7 +29,7 @@
#include "ace/Thread_Mutex.h"
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || defined (ACE_VXWORKS)
+#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || defined (ACE_HAS_VXTHREADS)
// If platforms support semaphores with timed wait, then we use semaphores instead of c.v.
# define ACE_TOKEN_USES_SEMAPHORE
#endif /* (ACE_WIN32 && !ACE_HAS_WINCE) || VXWORKS */
diff --git a/ACE/ace/Truncate.h b/ACE/ace/Truncate.h
index e7026ce3114..7e03d90ca57 100644
--- a/ACE/ace/Truncate.h
+++ b/ACE/ace/Truncate.h
@@ -46,7 +46,7 @@ namespace ACE_Utils
template<> struct Sign_Check<unsigned short> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
template<> struct Sign_Check<unsigned int> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
template<> struct Sign_Check<unsigned long> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
-#ifndef ACE_LACKS_LONGLONG_T
+#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
@@ -114,7 +114,7 @@ namespace ACE_Utils
unsigned_type operator() (unsigned_type x) { return x; }
};
-#ifndef ACE_LACKS_LONGLONG_T
+#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
@@ -187,7 +187,7 @@ namespace ACE_Utils
}
};
-#ifndef ACE_LACKS_LONGLONG_T
+#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
diff --git a/ACE/ace/Vector_T.cpp b/ACE/ace/Vector_T.cpp
index adf9727c6ff..d66abd411ac 100644
--- a/ACE/ace/Vector_T.cpp
+++ b/ACE/ace/Vector_T.cpp
@@ -38,6 +38,9 @@ void ACE_Vector<T, DEFAULT_SIZE>::push_back (const T& elem)
ACE_Array<T>::size (curr_max_size_ * 2);
curr_max_size_ = this->max_size ();
}
+ else
+ ACE_Array<T>::size (length_ + 1);
+
++length_;
(*this)[length_-1] = elem;
}
@@ -82,29 +85,20 @@ int compare(const ACE_Vector<T>& v1,
size_t last1 = v1.size () - 1;
size_t last2 = v2.size () - 1;
if (last1 < from_ndx || last1 < to_ndx)
- {
- return false;
- }
+ return false;
if (last2 < from_ndx || last2 < to_ndx)
- {
- return false;
- }
+ return false;
if (last1 != last2)
- {
- return false;
- }
+ return false;
// cout<<"compare() <================="<<endl;
for (size_t i = from_ndx; i <= to_ndx; ++i)
- {
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- {
- return false;
- }
- }
+ // cout<<"V1["<<i<<"]="<<v1[i];
+ // cout<<", V2["<<i<<"]="<<v2[i];
+ // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
+ if (v1[i] != v2[i])
+ return false;
+
// cout<<"compare() ====================>"<<endl;
return true;
}
@@ -117,25 +111,20 @@ int partial_compare(const ACE_Vector<T>& v1,
{
size_t last1 = v1.size () - 1;
size_t last2 = v2.size () - 1;
+
if (last1 < from_ndx || last1 < to_ndx)
- {
- return false;
- }
+ return false;
if (last2 < from_ndx || last2 < to_ndx)
- {
- return false;
- }
+ return false;
+
// cout<<"partial_compare() <================="<<endl;
for (size_t i = from_ndx; i <= to_ndx; ++i)
- {
- // cout<<"V1["<<i<<"]="<<v1[i];
- // cout<<", V2["<<i<<"]="<<v2[i];
- // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
- if (v1[i] != v2[i])
- {
- return false;
- }
- }
+ // cout<<"V1["<<i<<"]="<<v1[i];
+ // cout<<", V2["<<i<<"]="<<v2[i];
+ // cout<<": NOT EQUAL == "<<(v1[i]!=v2[i])<<endl;
+ if (v1[i] != v2[i])
+ return false;
+
// cout<<"partial_compare() ====================>"<<endl;
return true;
}
diff --git a/ACE/ace/Vector_T.inl b/ACE/ace/Vector_T.inl
index f9388daf619..8dea22cd361 100644
--- a/ACE/ace/Vector_T.inl
+++ b/ACE/ace/Vector_T.inl
@@ -9,10 +9,10 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
template <class T, size_t DEFAULT_SIZE> ACE_INLINE
ACE_Vector<T, DEFAULT_SIZE>::ACE_Vector (const size_t init_size,
ACE_Allocator* alloc)
- : ACE_Array<T> (init_size == 0 ? DEFAULT_SIZE : init_size, alloc)
+ : ACE_Array<T> (init_size == 0 ? DEFAULT_SIZE : init_size, alloc),
+ length_ (0),
+ curr_max_size_ (this->max_size ())
{
- length_ = 0;
- curr_max_size_ = this->max_size ();
}
template <class T, size_t DEFAULT_SIZE> ACE_INLINE
@@ -42,7 +42,10 @@ template <class T, size_t DEFAULT_SIZE> ACE_INLINE
void ACE_Vector<T, DEFAULT_SIZE>::pop_back (void)
{
if (length_ > 0)
- --length_;
+ {
+ --length_;
+ ACE_Array<T>::size (length_);
+ }
}
// Compare this vector with <s> for inequality.
@@ -61,7 +64,6 @@ ACE_Vector<T, DEFAULT_SIZE>::swap (ACE_Vector &rhs)
std::swap (this->curr_max_size_, rhs.curr_max_size_);
}
-
// ****************************************************************
template <class T, size_t DEFAULT_SIZE> ACE_INLINE void
@@ -89,10 +91,8 @@ ACE_Vector_Iterator<T, DEFAULT_SIZE>::advance (void)
return 1;
}
else
- {
- // Already finished iterating.
- return 0;
- }
+ // Already finished iterating.
+ return 0;
}
template <class T, size_t DEFAULT_SIZE> ACE_INLINE int
@@ -104,3 +104,4 @@ ACE_Vector_Iterator<T, DEFAULT_SIZE>::done (void) const
}
ACE_END_VERSIONED_NAMESPACE_DECL
+
diff --git a/ACE/ace/Version.h b/ACE/ace/Version.h
index 659313bf88f..b50fdbc42fe 100644
--- a/ACE/ace/Version.h
+++ b/ACE/ace/Version.h
@@ -5,5 +5,5 @@
#define ACE_MAJOR_VERSION 5
#define ACE_MINOR_VERSION 6
-#define ACE_BETA_VERSION 1
-#define ACE_VERSION "5.6.1"
+#define ACE_BETA_VERSION 2
+#define ACE_VERSION "5.6.2"
diff --git a/ACE/ace/WFMO_Reactor.h b/ACE/ace/WFMO_Reactor.h
index a0937ef5bc8..da7ccdefe48 100644
--- a/ACE/ace/WFMO_Reactor.h
+++ b/ACE/ace/WFMO_Reactor.h
@@ -640,6 +640,13 @@ private:
* use the DONT_CALL flag with remove_handler(). Preferably, use dynamically
* allocated event handlers and call "delete this" inside the handle_close()
* hook method.
+ *
+ * Note that although multiple threads can concurrently run the
+ * ACE_WFMO_Reactor event loop, the concept of the reactor "owner" is still
+ * important. Only the owner thread can expire timers and wait on the
+ * notifications handle. Thus, be careful to properly set the owner thread
+ * when spawning threads to run the event loop while you are using timers
+ * or notifications.
*/
class ACE_Export ACE_WFMO_Reactor : public ACE_Reactor_Impl
{
diff --git a/ACE/ace/ace_for_tao.mpc b/ACE/ace/ace_for_tao.mpc
index 963643a46e2..2d8bd62faf3 100644
--- a/ACE/ace/ace_for_tao.mpc
+++ b/ACE/ace/ace_for_tao.mpc
@@ -188,7 +188,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
}
// ACE_Token implementation uses semaphores on Windows and VxWorks.
- conditional(vc6,vc71,vc8,nmake,bmake,borland) {
+ conditional(vc6,vc71,vc8,vc9,nmake,bmake,borland) {
NT_Service.cpp // Required by ace_for_tao sponsors
Semaphore.cpp
Process_Mutex.cpp
diff --git a/ACE/ace/config-aix-5.x.h b/ACE/ace/config-aix-5.x.h
index 68ad85c233c..8068829fd2a 100644
--- a/ACE/ace/config-aix-5.x.h
+++ b/ACE/ace/config-aix-5.x.h
@@ -54,11 +54,6 @@
// Compiler supports the ssize_t typedef.
# define ACE_HAS_SSIZE_T
-// When using the preprocessor, Ignore info msg; invalid #pragma
-# if defined (__IBMCPP__) && (__IBMCPP__ < 400) // IBM C++ 3.6
-# define ACE_CC_PREPROCESSOR_ARGS "-E -qflag=w:w"
-# endif /* (__IBMCPP__) && (__IBMCPP__ < 400) */
-
// Keep an eye on this as the compiler and standards converge...
# define ACE_LACKS_LINEBUFFERED_STREAMBUF
# define ACE_LACKS_PRAGMA_ONCE
@@ -71,7 +66,7 @@
# endif
// These are for Visual Age C++ only
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
+# if defined (__IBMCPP__) && (__IBMCPP__ >= 600)
# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
// When using -qtempinc, we don't need to see template implementation
// source (though we do need a pragma to find the correct source file).
@@ -89,11 +84,8 @@
# undef WIFEXITED
# undef WEXITSTATUS
-
-# if (__IBMCPP__ >= 500) /* Visual Age C++ 5 */
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# endif /* __IBMCPP__ >= 500 */
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
# if (__IBMCPP__ >= 600) /* Visual Age 6 and XL C/C++ 7 and up */
# define ACE_HAS_TEMPLATE_TYPEDEFS
@@ -289,7 +281,6 @@
# endif
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREADS_UNIX98_EXT
# define ACE_HAS_PTHREAD_CONTINUE_NP
# define ACE_HAS_PTHREAD_SUSPEND_NP
diff --git a/ACE/ace/config-cray.h b/ACE/ace/config-cray.h
index d63cd3b48eb..c50cc9f903e 100644
--- a/ACE/ace/config-cray.h
+++ b/ACE/ace/config-cray.h
@@ -53,22 +53,6 @@
#define ACE_HAS_PTHREADS
-// UNICOS 10 and UNICOS/mk implement a small subset of POSIX Threads,
-// but the prototypes follow the POSIX.1c-1995 definitions. Earlier
-// UNICOS versions sport Draft 7 threads.
-
-#if _UNICOS > 9
-# define ACE_HAS_PTHREADS_STD
-#else
-# define ACE_HAS_PTHREADS_DRAFT7
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
- // UNICOS 9 doesn't have this, nor sched.h
-# define SCHED_OTHER 0
-# define SCHED_FIFO 1
-# define SCHED_RR 2
-#endif
-
#define ACE_HAS_THREAD_SPECIFIC_STORAGE
#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
diff --git a/ACE/ace/config-cygwin32.h b/ACE/ace/config-cygwin32.h
index 04b9e079d51..99b709e4c49 100644
--- a/ACE/ace/config-cygwin32.h
+++ b/ACE/ace/config-cygwin32.h
@@ -181,8 +181,6 @@
# define ACE_HAS_PTHREAD_CONTINUE 1
# define ACE_HAS_PTHREAD_SUSPEND 1
-// ... and the final standard even!
-# define ACE_HAS_PTHREADS_STD
# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
// Cygwin (see pthread.h): Not supported or implemented.
# define ACE_LACKS_SETSCHED
diff --git a/ACE/ace/config-hpux-11.00.h b/ACE/ace/config-hpux-11.00.h
index ff1413f7007..ae83149b845 100644
--- a/ACE/ace/config-hpux-11.00.h
+++ b/ACE/ace/config-hpux-11.00.h
@@ -425,8 +425,6 @@
// features (lacks thread priority inheritance and protection), so
// config-posix.h doesn't get this one...
# define ACE_HAS_PTHREADS
-
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREADS_UNIX98_EXT
# define ACE_HAS_PTHREAD_CONTINUE
# define ACE_HAS_PTHREAD_RESUME_NP
diff --git a/ACE/ace/config-integritySCA.h b/ACE/ace/config-integritySCA.h
index 2a164db6ca3..5c0a356c46f 100644
--- a/ACE/ace/config-integritySCA.h
+++ b/ACE/ace/config-integritySCA.h
@@ -75,7 +75,6 @@
#define ACE_HAS_THREADS
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
/***** End Threading Defines *****/
/***** Hardware Defines *****/
diff --git a/ACE/ace/config-irix6.x-common.h b/ACE/ace/config-irix6.x-common.h
index 38d8ea5f5cc..72629881ec7 100644
--- a/ACE/ace/config-irix6.x-common.h
+++ b/ACE/ace/config-irix6.x-common.h
@@ -240,7 +240,6 @@
// IRIX 6.2 supports a variant of POSIX Pthreads, supposedly POSIX 1c
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
// Compiler/platform has thread-specific storage
#define ACE_HAS_THREAD_SPECIFIC_STORAGE
diff --git a/ACE/ace/config-linux-common.h b/ACE/ace/config-linux-common.h
index 76d61201ba0..afed971b64a 100644
--- a/ACE/ace/config-linux-common.h
+++ b/ACE/ace/config-linux-common.h
@@ -25,7 +25,7 @@
# define ACE_HAS_PTHREADS_UNIX98_EXT
#endif /* _XOPEN_SOURCE - 0 >= 500 */
-#if defined (ACE_HAS_LINUX_NPTL)
+#if !defined (ACE_LACKS_LINUX_NPTL)
# include "ace/config-posix.h"
@@ -48,7 +48,7 @@
# define ACE_HAS_POSIX_SEM_TIMEOUT
# endif /* !ACE_HAS_POSIX_SEM_TIMEOUT && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600)) */
# endif /* ACE_HAS_POSIX_SEM */
-#endif /* ACE_HAS_LINUX_NPTL */
+#endif /* !ACE_LACKS_LINUX_NPTL */
// First the machine specific part
@@ -67,9 +67,13 @@
// Then glibc/libc5 specific parts
#if defined(__GLIBC__)
-# define ACE_HAS_NONCONST_SETRLIMIT
-# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
-# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
+# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
+# define ACE_HAS_NONCONST_SETRLIMIT
+# endif
+# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 3)
+# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
+# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
+# endif
# define ACE_HAS_SOCKLEN_T
# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
@@ -295,6 +299,8 @@
#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
+#define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
+
#define ACE_HAS_GETPAGESIZE 1
#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
diff --git a/ACE/ace/config-linux.h b/ACE/ace/config-linux.h
index 982d699fbd8..7f6510f7d05 100644
--- a/ACE/ace/config-linux.h
+++ b/ACE/ace/config-linux.h
@@ -26,8 +26,6 @@
#define ACE_HAS_THREADS
// And they're even POSIX pthreads (LinuxThreads implementation)
#define ACE_HAS_PTHREADS
-// ... and the final standard even!
-#define ACE_HAS_PTHREADS_STD
// On linux this is part of pthreads
# if (defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L)
diff --git a/ACE/ace/config-macosx-leopard.h b/ACE/ace/config-macosx-leopard.h
index 417c0c5944b..f2f73a4683f 100644
--- a/ACE/ace/config-macosx-leopard.h
+++ b/ACE/ace/config-macosx-leopard.h
@@ -175,7 +175,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
#endif /* ACE_MT_SAFE == 1 */
diff --git a/ACE/ace/config-macosx-panther.h b/ACE/ace/config-macosx-panther.h
index 65c0b6aba6f..1c7361fd416 100644
--- a/ACE/ace/config-macosx-panther.h
+++ b/ACE/ace/config-macosx-panther.h
@@ -143,7 +143,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
#endif /* ACE_MT_SAFE == 1 */
diff --git a/ACE/ace/config-macosx-tiger.h b/ACE/ace/config-macosx-tiger.h
index 5655e9d0675..906509818ab 100644
--- a/ACE/ace/config-macosx-tiger.h
+++ b/ACE/ace/config-macosx-tiger.h
@@ -171,7 +171,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
#endif /* ACE_MT_SAFE == 1 */
diff --git a/ACE/ace/config-macosx.h b/ACE/ace/config-macosx.h
index c772efb07c8..c721353ca48 100644
--- a/ACE/ace/config-macosx.h
+++ b/ACE/ace/config-macosx.h
@@ -145,7 +145,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# define ACE_LACKS_THREAD_PROCESS_SCOPING
#endif /* ACE_MT_SAFE == 1 */
diff --git a/ACE/ace/config-mvs.h b/ACE/ace/config-mvs.h
index 239452a93ec..3572bae3cde 100644
--- a/ACE/ace/config-mvs.h
+++ b/ACE/ace/config-mvs.h
@@ -56,7 +56,6 @@
#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_DRAFT6
#define ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP
#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
#define ACE_HAS_SIGINFO_T
diff --git a/ACE/ace/config-netbsd.h b/ACE/ace/config-netbsd.h
index 4a091a380d1..7c25423fe4c 100644
--- a/ACE/ace/config-netbsd.h
+++ b/ACE/ace/config-netbsd.h
@@ -15,7 +15,6 @@
#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
# define ACE_HAS_THREADS 1
# define ACE_HAS_PTHREADS 1
-# define ACE_HAS_PTHREADS_STD 1
# define ACE_HAS_PTHREADS_UNIX98_EXT 1
# define ACE_HAS_PTHREAD_RESUME_NP 1
# define ACE_HAS_PTHREAD_SUSPEND_NP 1
diff --git a/ACE/ace/config-openvms.h b/ACE/ace/config-openvms.h
index 42442c9070e..606ef5b4472 100644
--- a/ACE/ace/config-openvms.h
+++ b/ACE/ace/config-openvms.h
@@ -150,7 +150,6 @@
#define ACE_LACKS_THREAD_PROCESS_SCOPING 1
#define ACE_HAS_PTHREADS 1
-#define ACE_HAS_PTHREADS_STD 1
#define ACE_HAS_PTHREAD_PROCESS_ENUM 1
#define ACE_LACKS_UNNAMED_SEMAPHORE 1
#define ACE_MT_SAFE 1
@@ -196,4 +195,7 @@
#define ACE_LACKS_UNIX_SYSLOG 1
#define ACE_LACKS_ALPHASORT 1
+#define ACE_HAS_SOCK_BUF_SIZE_MAX
+#define ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE 65535
+
#endif
diff --git a/ACE/ace/config-posix.h b/ACE/ace/config-posix.h
index e571574a5c4..482e2b91d10 100644
--- a/ACE/ace/config-posix.h
+++ b/ACE/ace/config-posix.h
@@ -59,10 +59,6 @@
# define ACE_HAS_PTHREADS
# endif /* ACE_HAS_PTHREADS */
-# if !defined(ACE_HAS_PTHREADS_STD)
-# define ACE_HAS_PTHREADS_STD
-# endif /* ACE_HAS_PTHREADS_STD */
-
# endif /* _POSIX_THREADS */
# endif /* ACE_HAS_THREADS */
#endif /* !ACE_MT_SAFE */
diff --git a/ACE/ace/config-qnx-neutrino.h b/ACE/ace/config-qnx-neutrino.h
index e60f6c87ba5..ba53271f0b5 100644
--- a/ACE/ace/config-qnx-neutrino.h
+++ b/ACE/ace/config-qnx-neutrino.h
@@ -68,7 +68,6 @@
#define ACE_HAS_POSIX_SEM
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SELECT_H
diff --git a/ACE/ace/config-qnx-rtp-62x.h b/ACE/ace/config-qnx-rtp-62x.h
index 114d53710f9..6ccea40af39 100644
--- a/ACE/ace/config-qnx-rtp-62x.h
+++ b/ACE/ace/config-qnx-rtp-62x.h
@@ -43,7 +43,6 @@
#define ACE_HAS_POSIX_SEM
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SELECT_H
diff --git a/ACE/ace/config-qnx-rtp-pre62x.h b/ACE/ace/config-qnx-rtp-pre62x.h
index 5f32f71c318..00ad0166f18 100644
--- a/ACE/ace/config-qnx-rtp-pre62x.h
+++ b/ACE/ace/config-qnx-rtp-pre62x.h
@@ -41,7 +41,6 @@
#define ACE_HAS_POSIX_SEM
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_PTHREADS
-#define ACE_HAS_PTHREADS_STD
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SELECT_H
diff --git a/ACE/ace/config-rtems.h b/ACE/ace/config-rtems.h
index f7a600dc5b1..b32fbb8c15a 100644
--- a/ACE/ace/config-rtems.h
+++ b/ACE/ace/config-rtems.h
@@ -71,7 +71,6 @@
#if ACE_MT_SAFE
# define ACE_HAS_THREADS
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_LACKS_THREAD_PROCESS_SCOPING
diff --git a/ACE/ace/config-sunos5.5.h b/ACE/ace/config-sunos5.5.h
index 56fc7e9c0d8..8666932642c 100644
--- a/ACE/ace/config-sunos5.5.h
+++ b/ACE/ace/config-sunos5.5.h
@@ -322,7 +322,6 @@
# endif /* ! _POSIX_PTHREAD_SEMANTICS */
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
// . . . but only supports SCHED_OTHER scheduling policy
# define ACE_HAS_ONLY_SCHED_OTHER
# define ACE_HAS_SIGWAIT
@@ -408,5 +407,8 @@
# define ACE_HAS_3_PARAM_READDIR_R
#endif
+// Sum of the iov_len values can't be larger then SSIZE_MAX
+#define ACE_HAS_SOCK_BUF_SIZE_MAX
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_H */
diff --git a/ACE/ace/config-tandem-nsk-mips-v2.h b/ACE/ace/config-tandem-nsk-mips-v2.h
index b96d033f5d4..3dee75016c0 100644
--- a/ACE/ace/config-tandem-nsk-mips-v2.h
+++ b/ACE/ace/config-tandem-nsk-mips-v2.h
@@ -250,19 +250,6 @@ typedef enum CMA_T_SCHED_POLICY {
// ACE_HAS_... thing for extensions.
#define ACE_HAS_PTHREADS
-// Platform's 'Pthreads' is .4a draft 4
-#ifndef ACE_TANDEM_T1248_PTHREADS
-# define ACE_HAS_PTHREADS_DRAFT4
-# define ACE_LACKS_CONST_TIMESPEC_PTR
-extern int cma_sigwait (sigset_t *);
-#endif
-
-// Platform supports POSIX.1c-1995 threads
-// (This is the final standard Pthreads).
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#endif
-
// Standard pthreads supports only SCHED_FIFO
#define ACE_HAS_ONLY_SCHED_FIFO
diff --git a/ACE/ace/config-tandem-nsk-mips-v3.h b/ACE/ace/config-tandem-nsk-mips-v3.h
index acc49d52fc4..80fdb49becd 100644
--- a/ACE/ace/config-tandem-nsk-mips-v3.h
+++ b/ACE/ace/config-tandem-nsk-mips-v3.h
@@ -244,6 +244,23 @@ typedef enum CMA_T_SCHED_POLICY {
// Size of a wchar
#define ACE_SIZEOF_WCHAR 2
+// Platform lacks time typedefs
+#define ACE_LACKS_SUSECONDS_T
+#define ACE_LACKS_USECONDS_T
+
+// Platform lacks setegid() and seteuid()
+#define ACE_LACKS_SETEGID
+#define ACE_LACKS_SETEUID
+
+// Platform lacks vsnprintf()
+#define ACE_LACKS_VSNPRINTF
+
+// Platform lacks log2()
+#define ACE_LACKS_LOG2
+
+// Platform lacks alphasort()
+#define ACE_LACKS_ALPHASORT
+
//=========================================================================
// Threads specific parts
@@ -258,19 +275,6 @@ typedef enum CMA_T_SCHED_POLICY {
// ACE_HAS_... thing for extensions.
#define ACE_HAS_PTHREADS
-// Platform's 'Pthreads' is .4a draft 4
-#ifndef ACE_TANDEM_T1248_PTHREADS
-# define ACE_HAS_PTHREADS_DRAFT4
-# define ACE_LACKS_CONST_TIMESPEC_PTR
-extern int cma_sigwait (sigset_t *);
-#endif
-
-// Platform supports POSIX.1c-1995 threads
-// (This is the final standard Pthreads).
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#define ACE_HAS_PTHREADS_STD
-#endif
-
// Standard pthreads supports only SCHED_FIFO
#define ACE_HAS_ONLY_SCHED_FIFO
@@ -304,6 +308,9 @@ extern int cma_sigwait (sigset_t *);
// Platform lacks pthread_attr_setstackaddr
#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
+// Platform lacks pthread_attr_setstack
+#define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+
// Defining ACE_HAS_UCONTEXT_T since G06.21 version of spthreads has
// a definition for it.
#ifdef ACE_TANDEM_T1248_PTHREADS
@@ -364,12 +371,15 @@ extern int cma_sigwait (sigset_t *);
// Platform lacks <poll.h>
#define ACE_LACKS_POLL_H
+// Platform lacks <sys/sysctl.h>
+#define ACE_LACKS_SYS_SYSCTL_H
+
//=========================================================================
// Compiler specific parts
//=========================================================================
// Compiler supports C++ exception handling
-#define ACE_HAS_EXCEPTIONS
+#define ACE_HAS_EXCEPTIONS 1
// Compiler/platform has correctly prototyped header files
#define ACE_HAS_CPLUSPLUS_HEADERS
@@ -411,6 +421,9 @@ extern int cma_sigwait (sigset_t *);
// Compiler can handle any operators in namespace
#define ACE_ANY_OPS_USE_NAMESPACE
+// Platform lacks intptr_t typedef
+#define ACE_LACKS_INTPTR_T
+
//=========================================================================
// C++ version3 import/export macros
//=========================================================================
diff --git a/ACE/ace/config-tru64.h b/ACE/ace/config-tru64.h
index 02532cecab9..1877af703bb 100644
--- a/ACE/ace/config-tru64.h
+++ b/ACE/ace/config-tru64.h
@@ -59,47 +59,17 @@
# endif /* __cplusplus */
#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ */
-#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199506L)
- // cxx with POSIX 1003.1c-1995 threads (pthreads) . . .
-# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-# define ACE_HAS_BROKEN_IF_HEADER
-# define ACE_HAS_BROKEN_R_ROUTINES
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_BROKEN_IF_HEADER
+#define ACE_HAS_BROKEN_R_ROUTINES
#if (ACE_MT_SAFE != 0)
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
#endif /* ACE_MT_SAFE != 0 */
-# define ACE_LACKS_T_ERRNO
-# if !defined (DIGITAL_UNIX)
-# define DIGITAL_UNIX 0x400
-# endif /* ! DIGITAL_UNIX */
- // DJT removed this due to some minor issues related to the
- // definitions of timestruc_t and tid_t in procfs.h not sure what
- // functionality is lost? Platform supports <sys/procfs.h>
- //#define ACE_HAS_PROC_FS
-#else /* _POSIX_C_SOURCE < 199506L */
- // cxx with DCE threads . . .
- // This ACE configuration is only supported with cxx; it has not been
- // test with g++.
-# define ACE_HAS_BROKEN_MSG_H
-# define ACE_HAS_BROKEN_POSIX_TIME
-#if (ACE_MT_SAFE != 0)
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_DRAFT4
-# define ACE_HAS_THREAD_SELF
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#endif
-# define ACE_HAS_GETPAGESIZE
-# define ACE_HAS_PROC_FS
-# define ACE_HAS_SETKIND_NP
-# define ACE_LACKS_CONST_TIMESPEC_PTR
-# define ACE_LACKS_READDIR_R
-# define ACE_LACKS_SETSCHED
-# define ACE_LACKS_SIGNED_CHAR
-# define ACE_LACKS_SYSV_MSQ_PROTOS
-#endif /* _POSIX_C_SOURCE < 199506L */
+#define ACE_LACKS_T_ERRNO
+#if !defined (DIGITAL_UNIX)
+# define DIGITAL_UNIX 0x400
+#endif /* ! DIGITAL_UNIX */
#define ACE_SIZEOF_LONG 8
diff --git a/ACE/ace/config-unixware-7.1.0.h b/ACE/ace/config-unixware-7.1.0.h
index 808a247bb7f..53f42f3a1b1 100644
--- a/ACE/ace/config-unixware-7.1.0.h
+++ b/ACE/ace/config-unixware-7.1.0.h
@@ -164,9 +164,6 @@
/* Platform supports POSIX Threads */
#define ACE_HAS_PTHREADS 1
-/* Platform supports POSIX.1c-1995 threads */
-#define ACE_HAS_PTHREADS_STD 1
-
/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
PTHREAD_PROCESS_SHARED values */
#define ACE_HAS_PTHREAD_PROCESS_ENUM 1
diff --git a/ACE/ace/config-unixware-7.1.0.udk.h b/ACE/ace/config-unixware-7.1.0.udk.h
index d608bbee680..0ba282a4e51 100644
--- a/ACE/ace/config-unixware-7.1.0.udk.h
+++ b/ACE/ace/config-unixware-7.1.0.udk.h
@@ -198,9 +198,6 @@
/* Platform supports POSIX Threads */
#define ACE_HAS_PTHREADS
-/* Platform supports POSIX.1c-1995 threads */
-#define ACE_HAS_PTHREADS_STD
-
/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
PTHREAD_PROCESS_SHARED values */
#define ACE_HAS_PTHREAD_PROCESS_ENUM
diff --git a/ACE/ace/config-vxworks5.x.h b/ACE/ace/config-vxworks5.x.h
index 767ef43370a..744d4a8a221 100644
--- a/ACE/ace/config-vxworks5.x.h
+++ b/ACE/ace/config-vxworks5.x.h
@@ -36,6 +36,10 @@
# define ACE_LACKS_LINEBUFFERED_STREAMBUF
+# if (__GNUC__ == 2)
+# define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
+# endif
+
# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
// GNU 3.3+ toolchain supports long long types but fails to define this so STL
// skips some definitions
@@ -272,7 +276,6 @@
// It is possible to enable pthread support with VxWorks, when the user decides
// to use this, we need some more defines
#if defined ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_LACKS_CONDATTR_PSHARED
# define ACE_LACKS_MUTEXATTR_PSHARED
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
diff --git a/ACE/ace/config-vxworks6.2.h b/ACE/ace/config-vxworks6.2.h
index ef289fc1925..ff78628b15b 100644
--- a/ACE/ace/config-vxworks6.2.h
+++ b/ACE/ace/config-vxworks6.2.h
@@ -69,6 +69,15 @@
# endif /* __cplusplus */
#endif /* ! __GNUG__ && ! ghs */
+#if !defined __RTP__
+# if defined (TOOL) && (TOOL == gnu)
+# if defined (CPU) && (CPU == PPC85XX || CPU == PPC604 || CPU == PPC603)
+// These PPC's do lack log2 in kernel mode
+# define ACE_LACKS_LOG2
+# endif
+# endif
+#endif
+
// OS-specific configuration
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
#define ACE_HAS_NONCONST_GETBY
@@ -260,7 +269,6 @@
// It is possible to enable pthread support with VxWorks, when the user decides
// to use this, we need some more defines
#if defined ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# define ACE_HAS_POSIX_SEM
# define ACE_LACKS_MUTEXATTR_PSHARED
diff --git a/ACE/ace/config-vxworks6.3.h b/ACE/ace/config-vxworks6.3.h
index 2dd7a8789ed..b855b301793 100644
--- a/ACE/ace/config-vxworks6.3.h
+++ b/ACE/ace/config-vxworks6.3.h
@@ -51,6 +51,15 @@
# endif /* __cplusplus */
#endif /* ! __GNUG__ && ! ghs */
+#if !defined __RTP__
+# if defined (TOOL) && (TOOL == gnu)
+# if defined (CPU) && (CPU == PPC85XX || CPU == PPC604 || CPU == PPC603)
+// These PPC's do lack log2 in kernel mode
+# define ACE_LACKS_LOG2
+# endif
+# endif
+#endif
+
// OS-specific configuration
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
#define ACE_HAS_NONCONST_GETBY
@@ -246,7 +255,6 @@
// It is possible to enable pthread support with VxWorks, when the user decides
// to use this, we need some more defines
#if defined ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# define ACE_HAS_POSIX_SEM
# define ACE_LACKS_MUTEXATTR_PSHARED
diff --git a/ACE/ace/config-vxworks6.4.h b/ACE/ace/config-vxworks6.4.h
index 256a0c1c5c2..37b13ef7dd1 100644
--- a/ACE/ace/config-vxworks6.4.h
+++ b/ACE/ace/config-vxworks6.4.h
@@ -76,6 +76,15 @@
#endif
#endif
+#if !defined __RTP__
+# if defined (TOOL) && (TOOL == gnu)
+# if defined (CPU) && (CPU == PPC85XX || CPU == PPC604 || CPU == PPC603)
+// These PPC's do lack log2 in kernel mode
+# define ACE_LACKS_LOG2
+# endif
+# endif
+#endif
+
// OS-specific configuration
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
#define ACE_HAS_3_PARAM_READDIR_R
@@ -273,7 +282,6 @@
// It is possible to enable pthread support with VxWorks, when the user decides
// to use this, we need some more defines
#if defined ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# if !defined __RTP__
# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
diff --git a/ACE/ace/config-vxworks6.6.h b/ACE/ace/config-vxworks6.6.h
new file mode 100644
index 00000000000..71a4145328f
--- /dev/null
+++ b/ACE/ace/config-vxworks6.6.h
@@ -0,0 +1,339 @@
+//* -*- C++ -*- */
+// $Id$
+
+// The following configuration file is designed to work for VxWorks
+// 6.4 platforms using one of these compilers:
+// 1) The GNU g++ compiler that is shipped with VxWorks 6.6
+// 2) The Diab compiler that is shipped with VxWorks 6.6
+
+#ifndef ACE_CONFIG_VXWORKS_6_6_H
+#define ACE_CONFIG_VXWORKS_6_6_H
+#include /**/ "ace/pre.h"
+
+#if ! defined (VXWORKS)
+# define VXWORKS
+#endif /* ! VXWORKS */
+
+#if ! defined (ACE_VXWORKS)
+# define ACE_VXWORKS 0x660
+#endif /* ! ACE_VXWORKS */
+
+#if !defined (__RTP__)
+ // Fix for wrong typedef of time_t in kernel mode
+ #ifndef _TIME_T
+ #define _TIME_T
+ typedef long time_t;
+ #endif
+#endif
+
+#if ! defined (__ACE_INLINE__)
+# define __ACE_INLINE__
+#endif /* ! __ACE_INLINE__ */
+
+// Compiler-specific configuration.
+#if defined (__GNUG__)
+# include "ace/config-g++-common.h"
+
+# define ACE_LACKS_IOSTREAM_FX
+# define ACE_LACKS_LINEBUFFERED_STREAMBUF
+
+# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
+ // GNU 3.3+ toolchain supports long long types but fails to define this so STL
+ // skips some definitions
+# if !defined (_GLIBCPP_USE_LONG_LONG)
+# define _GLIBCPP_USE_LONG_LONG
+# endif
+# endif /* (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) */
+
+#elif defined (__DCC__)
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_TEMPLATES_REQUIRE_SOURCE
+#else /* ! __GNUG__ && ! ghs && !__DCC__ */
+# ifdef __cplusplus /* Let it slide for C compilers. */
+# error unsupported compiler on VxWorks
+# endif /* __cplusplus */
+#endif /* ! __GNUG__ && ! ghs */
+
+// Needed include to get all VxWorks CPU types
+#include "types/vxCpu.h"
+#if defined __RTP__
+ #if defined (_VX_CPU) && (_VX_CPU == _VX_PENTIUM || _VX_CPU == _VX_PENTIUM2 || _VX_CPU == _VX_PENTIUM3 || _VX_CPU == _VX_PENTIUM4)
+ // If running an Intel Pentium the
+ // ACE_OS::gethrtime () can use the RDTSC instruction.
+ # define ACE_HAS_PENTIUM
+ #endif
+#else
+ #if defined (CPU) && (CPU == PENTIUM || CPU == PENTIUM2 || CPU == PENTIUM3 || CPU == PENTIUM4)
+ // If running an Intel Pentium the
+ // ACE_OS::gethrtime () can use the RDTSC instruction.
+ # define ACE_HAS_PENTIUM
+ #endif
+#endif
+
+#if !defined __RTP__
+# if defined (TOOL) && (TOOL == gnu)
+# if defined (CPU) && (CPU == PPC85XX || CPU == PPC604 || CPU == PPC603)
+// These PPC's do lack log2 in kernel mode
+# define ACE_LACKS_LOG2
+# endif
+# endif
+#endif
+
+// OS-specific configuration
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_HAS_NONCONST_GETBY
+#define ACE_HAS_NONCONST_SWAB
+#define ACE_LACKS_UNIX_SYSLOG
+#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 32768
+#define ACE_DEFAULT_THREAD_KEYS 16
+#define ACE_HAS_BROKEN_ACCEPT_ADDR
+#define ACE_HAS_NONCONST_SENDMSG
+#define ACE_HAS_NONCONST_WRITEV
+#define ACE_HAS_CHARPTR_DL
+#define ACE_HAS_CLOCK_GETTIME
+#define ACE_HAS_CLOCK_SETTIME
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+#define ACE_HAS_CPLUSPLUS_HEADERS
+#define ACE_HAS_DIRENT
+#define ACE_HAS_DLL 0
+#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
+#define ACE_HAS_MSG
+#define ACE_HAS_NONCONST_READV
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
+#define ACE_HAS_POSIX_NONBLOCK
+#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_HAS_SIGACTION_CONSTP2
+#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SOCKADDR_IN_SIN_LEN
+#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN
+#define ACE_HAS_STRERROR
+#define ACE_HAS_THREADS
+#define ACE_HAS_SYSCTL
+#define ACE_LACKS_ALPHASORT
+#define ACE_LACKS_EXEC
+#define ACE_LACKS_RLIMIT
+#define ACE_LACKS_FILELOCKS
+#define ACE_LACKS_FORK
+#define ACE_LACKS_GETHOSTENT
+#define ACE_LACKS_GETSERVBYNAME
+#define ACE_LACKS_GETPROTOBYNAME
+#define ACE_LACKS_GETPROTOBYNUMBER
+#define ACE_LACKS_GETIPNODEBYADDR
+#define ACE_LACKS_GETIPNODEBYNAME_IPV6
+#define ACE_LACKS_LSTAT
+#define ACE_LACKS_MADVISE
+#define ACE_LACKS_MALLOC_H
+#define ACE_LACKS_MEMORY_H
+#define ACE_LACKS_MKFIFO
+#define ACE_LACKS_MKSTEMP
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_SYS_PARAM_H
+#define ACE_LACKS_PWD_FUNCTIONS
+#define ACE_LACKS_READLINK
+#define ACE_LACKS_REALPATH
+#define ACE_LACKS_PIPE
+#define ACE_LACKS_RWLOCK_T
+#define ACE_LACKS_SBRK
+#define ACE_LACKS_SEEKDIR
+#define ACE_LACKS_SEMBUF_T
+#define ACE_LACKS_SIGINFO_H
+#define ACE_LACKS_SI_ADDR
+#define ACE_LACKS_SOCKETPAIR
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_SYSV_SHMEM
+#define ACE_LACKS_TELLDIR
+#define ACE_LACKS_TIMESPEC_T
+#define ACE_LACKS_TRUNCATE
+#define ACE_LACKS_UCONTEXT_H
+#define ACE_LACKS_USECONDS_T
+#define ACE_LACKS_UMASK
+#define ACE_LACKS_STRPTIME
+#define ACE_LACKS_MKTEMP
+#define ACE_LACKS_TEMPNAM
+#define ACE_PAGE_SIZE 4096
+#define ACE_THR_PRI_FIFO_DEF 101
+#define ACE_THR_PRI_OTHER_DEF ACE_THR_PRI_FIFO_DEF
+#define ACE_HAS_SIGTIMEDWAIT
+#define ACE_HAS_SIGSUSPEND
+#define ACE_HAS_GETIFADDRS
+
+#define ACE_LACKS_SETEGID
+#define ACE_LACKS_SETPGID
+#define ACE_LACKS_SETREGID
+#define ACE_LACKS_SETREUID
+#define ACE_LACKS_SETSID
+#define ACE_LACKS_SETUID
+#define ACE_LACKS_SETEUID
+#define ACE_LACKS_GETEUID
+#define ACE_LACKS_GETUID
+#define ACE_LACKS_GETPGID
+#define ACE_LACKS_GETEGID
+#define ACE_LACKS_GETGID
+#define ACE_LACKS_SETGID
+
+#define ACE_LACKS_SYS_UIO_H
+#define ACE_LACKS_SYS_IPC_H
+#define ACE_LACKS_SYS_SEM_H
+#define ACE_LACKS_STROPTS_H
+#define ACE_LACKS_SYS_MSG_H
+#define ACE_LACKS_PWD_H
+#define ACE_LACKS_SYS_SHM_H
+#define ACE_LACKS_TERMIOS_H
+#define ACE_LACKS_POLL_H
+#define ACE_LACKS_FCNTL
+
+// Some string things
+#define ACE_LACKS_ITOW
+#define ACE_LACKS_WCSDUP
+#define ACE_LACKS_WCSICMP
+#define ACE_LACKS_WCSNICMP
+
+#define ACE_HAS_CHARPTR_SOCKOPT
+#define ACE_LACKS_SYMLINKS
+
+#if defined __RTP__
+ // We are building for RTP mode
+ #if !defined (ACE_AS_STATIC_LIBS)
+ # define ACE_HAS_SVR4_DYNAMIC_LINKING
+ #endif
+ #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+ #define ACE_LACKS_REGEX_H
+ #if defined ACE_HAS_PENTIUM
+ // Bug to workaround VxWorks 6.4 x86
+ # define ACE_LACKS_PUTENV
+ #endif
+ #define ACE_HAS_SETENV
+ #define ACE_LACKS_STRCASECMP
+ #define ACE_HAS_3_PARAM_WCSTOK
+ #define ACE_HAS_WCHAR
+ #define ACE_HAS_VFWPRINTF
+ #define ACE_SIZEOF_WCHAR 2
+ #define ACE_HAS_SHM_OPEN
+ #if defined (ACE_AS_STATIC_LIBS)
+ # define ACE_HAS_AIO_CALLS
+ #endif
+ // VxWorks seems to either not define this or define as zero up till now
+ #if !defined (IOV_MAX) || (IOV_MAX == 0)
+ #define ACE_IOV_MAX 16
+ #endif
+#else
+ // We are building for kernel mode
+ #define ACE_LACKS_SUSECONDS_T
+ #define ACE_LACKS_INTPTR_T
+ #define ACE_LACKS_INTTYPES_H
+ #define ACE_LACKS_STDINT_H
+ #define ACE_LACKS_UNAME
+ #define ACE_LACKS_UTSNAME_T
+ #define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
+ #define ACE_LACKS_DLFCN_H
+ #define ACE_LACKS_WAIT
+ #define ACE_LACKS_WAITPID
+ #define ACE_LACKS_SYS_TIME_H
+ #define ACE_LACKS_SYS_SELECT_H
+ #define ACE_MKDIR_LACKS_MODE
+ #define ACE_HAS_SIZET_PTR_ASCTIME_R_AND_CTIME_R
+ #define ACE_LACKS_SEARCH_H
+ #define ACE_LACKS_SYSCONF
+ #define ACE_LACKS_GETPPID
+ #define ACE_LACKS_WCHAR_H
+ #define ACE_LACKS_WCTYPE_H
+ #define ACE_LACKS_WCSCAT
+ #define ACE_LACKS_WCSCHR
+ #define ACE_LACKS_WCSCMP
+ #define ACE_LACKS_WCSCPY
+ #define ACE_LACKS_WCSCSPN
+ #define ACE_LACKS_WCSLEN
+ #define ACE_LACKS_WCSNCAT
+ #define ACE_LACKS_WCSNCMP
+ #define ACE_LACKS_WCSNCPY
+ #define ACE_LACKS_WCSPBRK
+ #define ACE_LACKS_WCSRCHR
+ #define ACE_LACKS_WCSSPN
+ #define ACE_LACKS_WCSSTR
+ #define ACE_LACKS_WCSTOK
+ #define ACE_LACKS_TOWLOWER
+ #define ACE_LACKS_TOWUPPER
+ #define ACE_LACKS_WCSTOD
+ #define ACE_LACKS_WCSTOL
+ #define ACE_LACKS_WCSTOUL
+ #define ACE_LACKS_FGETWC
+ #define ACE_LACKS_FGETWS
+ #define ACE_LACKS_FPUTWS
+ #define ACE_HAS_IOCTL_INT_3_PARAM
+ #define ACE_LACKS_MMAP
+ #define ACE_LACKS_MSYNC
+ #define ACE_LACKS_MPROTECT
+ #if !defined (ACE_MAIN)
+ # define ACE_MAIN ace_main
+ #endif /* ! ACE_MAIN */
+#endif
+
+// It is possible to enable pthread support with VxWorks, when the user decides
+// to use this, we need some more defines
+#if defined ACE_HAS_PTHREADS
+# define ACE_HAS_THREAD_SPECIFIC_STORAGE
+# if !defined __RTP__
+# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+# endif
+# define ACE_HAS_PTHREAD_ATTR_SETNAME
+# define ACE_HAS_POSIX_SEM
+# define ACE_LACKS_MUTEXATTR_PSHARED
+# define ACE_LACKS_CONDATTR_PSHARED
+// Include this file, the sys/stat.h file shipped with VxWorks has old types
+// and without this include we get a lot of compile errors. A TSR has been filed
+// so that hopefully in the future we can zap this include
+#include "types/vxTypesOld.h"
+#else
+# define ACE_LACKS_PTHREAD_H
+# define ACE_HAS_VXTHREADS
+# if !defined __RTP__
+// Only when building for kernel mode we can use TSS emulation, in rtp mode
+// we can't use the WIND_TCB struct anymore
+# define ACE_HAS_TSS_EMULATION
+# if !defined (ACE_VXWORKS_SPARE)
+# define ACE_VXWORKS_SPARE spare4
+# endif /* ! ACE_VXWORKS_SPARE */
+# endif
+// VxWorks has no recursive mutexes. This was set in the past but it doesn't
+// work with the pthread support, so only set it for the time being when pthread
+// is disabled
+# define ACE_HAS_RECURSIVE_MUTEXES
+# define ACE_LACKS_COND_T
+# define ACE_HAS_MUTEX_TIMEOUTS
+#endif
+
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
+
+// VxWorks defines the CPU define MAP, undef it to prevent problems with
+// application code
+#if defined (MAP)
+#undef MAP
+#endif /* MAP */
+
+#if !defined (ACE_NEEDS_HUGE_THREAD_STACKSIZE)
+# define ACE_NEEDS_HUGE_THREAD_STACKSIZE 65536
+#endif /* ACE_NEEDS_HUGE_THREAD_STACKSIZE */
+
+#if !defined (ACE_NTRACE)
+# define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+
+// By default, don't include RCS Id strings in object code.
+#if !defined (ACE_USE_RCSID)
+#define ACE_USE_RCSID 0
+#endif /* !ACE_USE_RCSID */
+
+#if defined (ACE_HAS_IP_MULTICAST)
+# define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
+#endif /* ACE_HAS_IP_MULTICAST */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_VXWORKS_6_4_H */
+
diff --git a/ACE/ace/config-win32-interix.h b/ACE/ace/config-win32-interix.h
index b9c064c4359..19cb586aa8f 100644
--- a/ACE/ace/config-win32-interix.h
+++ b/ACE/ace/config-win32-interix.h
@@ -37,7 +37,6 @@
#define _THREAD_SAFE
#define ACE_MTSAFE 1
#define ACE_MT_SAFE 1
-#define ACE_HAS_PTHREADS_STD
#define ACE_LACKS_PTHREAD_YIELD
#define ACE_HAS_MUTEX_TIMEOUTS
#else
diff --git a/ACE/ace/config-win32-msvc-9.h b/ACE/ace/config-win32-msvc-9.h
index a30d76cc321..a8c9ec3ff2e 100644
--- a/ACE/ace/config-win32-msvc-9.h
+++ b/ACE/ace/config-win32-msvc-9.h
@@ -116,6 +116,9 @@
// Disable warning of using Microsoft Extension.
# pragma warning(disable:4231)
+// 'class1' : inherits 'class2::member' via dominance
+#pragma warning(disable:4250)
+
// CE (at least thru Windows Mobile 5) doesn't have the new, secure CRT.
#if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_TR24731_2005_CRT)
# define ACE_HAS_TR24731_2005_CRT
diff --git a/ACE/ace/os_include/os_limits.h b/ACE/ace/os_include/os_limits.h
index 61430536f31..a7f6e9e0fb2 100644
--- a/ACE/ace/os_include/os_limits.h
+++ b/ACE/ace/os_include/os_limits.h
@@ -102,7 +102,7 @@ extern "C"
# define ACE_IOV_MAX IOV_MAX
#endif /* ACE_IOV_MAX */
-#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x640)) && !defined (__RTP__)
+#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x660)) && !defined (__RTP__)
# if defined (PIPE_BUF) && (PIPE_BUF == -1)
# undef PIPE_BUF
# endif
diff --git a/ACE/ace/os_include/os_pthread.h b/ACE/ace/os_include/os_pthread.h
index 8708f4683e6..9ae6427079b 100644
--- a/ACE/ace/os_include/os_pthread.h
+++ b/ACE/ace/os_include/os_pthread.h
@@ -72,19 +72,6 @@ extern "C" pthread_t pthread_self (void);
# define ACE_SCHED_FIFO SCHED_FIFO
# define ACE_SCHED_RR SCHED_RR
-// Definitions for mapping POSIX pthreads draft 6 into 1003.1c names
-
-# if defined (ACE_HAS_PTHREADS_DRAFT6)
-# define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL
-# define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL
-# define PTHREAD_CREATE_UNDETACHED 0
-# define PTHREAD_CREATE_DETACHED 1
-# define PTHREAD_CREATE_JOINABLE 0
-# define PTHREAD_EXPLICIT_SCHED 0
-# define PTHREAD_MIN_PRIORITY 0
-# define PTHREAD_MAX_PRIORITY 126
-# endif /* ACE_HAS_PTHREADS_DRAFT6 */
-
// Definitions for THREAD- and PROCESS-LEVEL priorities...some
// implementations define these while others don't. In order to
// further complicate matters, we don't redefine the default (*_DEF)
@@ -301,34 +288,14 @@ extern "C" pthread_t pthread_self (void);
# endif /* PTHREAD_MUTEXTYPE_FAST */
# endif /* PTHREAD_PROCESS_SHARED */
-# if defined (ACE_HAS_PTHREADS_DRAFT4)
-# if defined (PTHREAD_PROCESS_PRIVATE)
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE
-# endif /* ! USYNC_THREAD */
-# else
-# if !defined (USYNC_THREAD)
-# define USYNC_THREAD MUTEX_NONRECURSIVE_NP
-# endif /* ! USYNC_THREAD */
-# endif /* PTHREAD_PROCESS_PRIVATE */
-
-# if defined (PTHREAD_PROCESS_SHARED)
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS PTHREAD_PROCESS_SHARED
-# endif /* ! USYNC_PROCESS */
-# else
-# if !defined (USYNC_PROCESS)
-# define USYNC_PROCESS MUTEX_NONRECURSIVE_NP
-# endif /* ! USYNC_PROCESS */
-# endif /* PTHREAD_PROCESS_SHARED */
-# elif !defined (ACE_HAS_STHREADS)
+# if !defined (ACE_HAS_STHREADS)
# if !defined (USYNC_THREAD)
# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE
# endif /* ! USYNC_THREAD */
# if !defined (USYNC_PROCESS)
# define USYNC_PROCESS PTHREAD_PROCESS_SHARED
# endif /* ! USYNC_PROCESS */
-# endif /* ACE_HAS_PTHREADS_DRAFT4 */
+# endif /* ACE_HAS_STHREADS */
/* MM-Graz: prevent warnings */
# if !defined (UNIXWARE_7_1)
diff --git a/ACE/ace/os_include/os_time.h b/ACE/ace/os_include/os_time.h
index 6f19ad1282b..6d03b2f6e82 100644
--- a/ACE/ace/os_include/os_time.h
+++ b/ACE/ace/os_include/os_time.h
@@ -90,13 +90,13 @@ extern "C"
// requirements as threads evolved. They are probably not all needed - some
// overlap or are otherwise confused. This is an attempt to start
// straightening them out.
-#if defined (ACE_HAS_PTHREADS_STD) /* POSIX.1c threads (pthreads) */
+#if defined (ACE_HAS_PTHREADS) /* POSIX.1c threads (pthreads) */
// ... and 2-parameter asctime_r and ctime_r
# if !defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) && \
!defined (ACE_HAS_STHREADS) && !defined (ACE_VXWORKS)
# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
# endif
-#endif /* ACE_HAS_PTHREADS_STD */
+#endif /* ACE_HAS_PTHREADS */
#if defined (ACE_LACKS_STRPTIME_PROTOTYPE) && !defined (_XOPEN_SOURCE)
extern char *strptime (const char *s, const char *fmt, struct tm *tp);
diff --git a/ACE/ace/os_include/sys/os_msg.h b/ACE/ace/os_include/sys/os_msg.h
index e6b2c6c1c63..fee07f3677b 100644
--- a/ACE/ace/os_include/sys/os_msg.h
+++ b/ACE/ace/os_include/sys/os_msg.h
@@ -27,14 +27,7 @@
#include "ace/os_include/sys/os_ipc.h"
#if !defined (ACE_LACKS_SYS_MSG_H)
-// OSF1 has problems with sys/msg.h and C++...
-# if defined (ACE_HAS_BROKEN_MSG_H)
-# define _KERNEL
-# endif /* ACE_HAS_BROKEN_MSG_H */
-# include /**/ <sys/msg.h>
-# if defined (ACE_HAS_BROKEN_MSG_H)
-# undef _KERNEL
-# endif /* ACE_HAS_BROKEN_MSG_H */
+# include /**/ <sys/msg.h>
#endif /* !ACE_LACKS_SYS_MSG_H */
// Place all additions (especially function declarations) within extern "C" {}
diff --git a/ACE/ace/os_include/sys/os_socket.h b/ACE/ace/os_include/sys/os_socket.h
index 01f0de3e507..3e18332d1fc 100644
--- a/ACE/ace/os_include/sys/os_socket.h
+++ b/ACE/ace/os_include/sys/os_socket.h
@@ -213,6 +213,10 @@ extern "C"
# define ACE_PROTOCOL_FAMILY_INET PF_INET
#endif /* ACE_HAS_IPV6 */
+#if !defined (ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE)
+#define ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE SSIZE_MAX
+#endif /* ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE */
+
#if defined (ACE_HAS_SOCKLEN_T)
# if defined (__hpux)
/*
diff --git a/ACE/ace/os_include/sys/os_types.h b/ACE/ace/os_include/sys/os_types.h
index 36be32cf5ec..42780144992 100644
--- a/ACE/ace/os_include/sys/os_types.h
+++ b/ACE/ace/os_include/sys/os_types.h
@@ -89,9 +89,10 @@ typedef double ACE_timer_t;
typedef offset_t ACE_LOFF_T;
#elif defined (WIN32)
typedef __int64 ACE_LOFF_T;
-#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x650)) || \
+#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x660)) || \
defined (ACE_LYNXOS_MAJOR) || \
- (defined (ACE_OPENVMS) && !defined (_LARGEFILE))
+ (defined (ACE_OPENVMS) && !defined (_LARGEFILE)) || \
+ defined (__TANDEM)
typedef long long ACE_LOFF_T;
#else
typedef loff_t ACE_LOFF_T;
diff --git a/ACE/apps/JAWS/ChangeLog b/ACE/apps/JAWS/ChangeLog
index cd9c930c8a1..8fbcef9842b 100644
--- a/ACE/apps/JAWS/ChangeLog
+++ b/ACE/apps/JAWS/ChangeLog
@@ -1,3 +1,9 @@
+Fri Dec 7 22:00:18 UTC 2007 Will Otte <wotte@dre.Vanderbilt.Edu>
+
+ * server/HTTP_Helpers.cpp:
+ Replaced format strings passed sscanf as char arrays to be
+ string literals instead, to address a gcc warning.
+
Wed Jul 17 14:40:28 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
* clients/Caching/http_handler.cpp:
diff --git a/ACE/apps/JAWS/server/HTTP_Helpers.cpp b/ACE/apps/JAWS/server/HTTP_Helpers.cpp
index 176b471037d..4bbaa6ee498 100644
--- a/ACE/apps/JAWS/server/HTTP_Helpers.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Helpers.cpp
@@ -56,9 +56,9 @@ HTTP_Helper::HTTP_mktime (const char *httpdate)
// rfc850-date = weekday "," SP dd-month-yy SP hh:mm:ss SP "GMT"
// asctime-date = wkday SP month dd SP hh:mm:ss SP yyyy
- static const char rfc1123_date[] = "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT";
- static const char rfc850_date[] = "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT";
- static const char asctime_date[] = "%3s;%3s;%2d;%2d:%2d:%2d;%4d";
+ // static const char rfc1123_date[] = "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT";
+ // static const char rfc850_date[] = "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT";
+ // static const char asctime_date[] = "%3s;%3s;%2d;%2d:%2d:%2d;%4d";
// Should also support other versions (such as from NNTP and SMTP)
// for robustness, but it should be clear how to extend this.
@@ -67,7 +67,7 @@ HTTP_Helper::HTTP_mktime (const char *httpdate)
char month[4];
char weekday[10];
- if (::sscanf(buf, rfc1123_date,
+ if (::sscanf(buf, "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT", // RFC-1123 date format
weekday,
&tms.tm_mday,
month,
@@ -76,14 +76,14 @@ HTTP_Helper::HTTP_mktime (const char *httpdate)
&tms.tm_min,
&tms.tm_sec) == 7)
;
- else if (::sscanf(buf, rfc850_date,
+ else if (::sscanf(buf, "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT", // RFC-850 date format
weekday,
&tms.tm_mday, month, &tms.tm_year,
&tms.tm_hour, &tms.tm_min, &tms.tm_sec) == 7)
{
weekday[3] = '\0';
}
- else if (::sscanf(buf, asctime_date,
+ else if (::sscanf(buf, "%3s;%3s;%2d;%2d:%2d:%2d;%4d", // ASCTIME date format.
weekday,
month, &tms.tm_mday,
&tms.tm_hour, &tms.tm_min, &tms.tm_sec,
diff --git a/ACE/apps/gperf/gperf.mpc b/ACE/apps/gperf/gperf.mpc
index 446f0f4c0a3..5f593c87afd 100644
--- a/ACE/apps/gperf/gperf.mpc
+++ b/ACE/apps/gperf/gperf.mpc
@@ -2,8 +2,8 @@
// $Id$
project (gperf_docs) : man {
-
Man_Files {
gperf.1
}
+ custom_only=1
}
diff --git a/ACE/apps/gperf/tests/test.cpp b/ACE/apps/gperf/tests/test.cpp
index e5fda938430..0333e3f3b70 100644
--- a/ACE/apps/gperf/tests/test.cpp
+++ b/ACE/apps/gperf/tests/test.cpp
@@ -23,7 +23,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
while (ACE_OS::fgets (buf, sizeof buf, stdin) != 0)
{
- int len = ACE_OS::strlen (buf) - 1;
+ size_t len = ACE_OS::strlen (buf) - 1;
buf[len] = '\0';
if (in_word_set (buf, len) && verbose)
ACE_OS::printf ("in word set %s\n", buf);
diff --git a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
index 315e3f9499e..fd7f56695aa 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
@@ -6,13 +6,13 @@ project : ace_x11, ace_gl {
// Depends on configuration from include/makeinclude/platform_*.GNU
verbatim(gnuace,local) {
- CPPFLAGS += $(PLATFORM_FL_CPPFLAGS)
+ CPPFLAGS += $(PLATFORM_FL_CPPFLAGS)
CPPFLAGS += $(PLATFORM_GL_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS)
LIBS += $(PLATFORM_FL_LIBS) $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS)
- LDFLAGS += $(PLATFORM_FL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
+ LDFLAGS += $(PLATFORM_FL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
LDFLAGS += $(PLATFORM_GL_LDFLAGS)
}
- specific(vc8,vc71,vc7,vc6) {
+ specific(vc9,vc8,vc71,vc7,vc6) {
libs += fltkdll
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
index 69bccb163af..645fd0104aa 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
@@ -10,7 +10,7 @@ project : ace_x11 {
LIBS += $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS)
LDFLAGS += $(PLATFORM_GL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
}
- specific(vc6,vc7,vc71,vc8) {
+ specific(vc6,vc7,vc71,vc8,vc9) {
lit_libs += OpenGL32
}
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
index 5b66aa7f68f..3c8635caaf2 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
@@ -21,7 +21,7 @@ project: qt {
pure_libs += $(ACE_QT_LIBS)
}
- specific(vc6, vc7, vc71, vc8, nmake) {
+ specific(vc6, vc7, vc71, vc8, vc9, nmake) {
lit_libs -= qt-mt$(QT_VERSION)
pure_libs += $(PLATFORM_QT_LIBS)
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
index 0b2f478acc2..38164eb093f 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
@@ -2,7 +2,7 @@
// $Id$
project {
- specific(vc6,vc7,vc71,vc8) {
+ specific(vc6,vc7,vc71,vc8,vc9) {
} else {
requires += x11
}
diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
index e7d14465290..9135b78e7af 100644
--- a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
+++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project: ipv6, vc8_warnings {
+project: ipv6, vc_warnings {
staticflags += ACE_AS_STATIC_LIBS
includes += $(ACE_ROOT)
libpaths += $(ACE_ROOT)/lib
@@ -19,7 +19,7 @@ project: ipv6, vc8_warnings {
libpaths -= $(ACE_ROOT)/lib
}
- specific(vc8) {
+ specific(vc8,vc9) {
// Enable structured exception handling
ExceptionHandling = 2
}
diff --git a/ACE/bin/MakeProjectCreator/config/ipv6.mpb b/ACE/bin/MakeProjectCreator/config/ipv6.mpb
index 60ceabf96f0..291cee4960b 100644
--- a/ACE/bin/MakeProjectCreator/config/ipv6.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ipv6.mpb
@@ -2,7 +2,7 @@
// $Id$
feature(ipv6) {
- specific(vc6, vc7, vc71, vc8, nmake, borland, bmake, bds4) {
+ specific(vc6, vc7, vc71, vc8, vc9, nmake, borland, bmake, bds4) {
lit_libs += iphlpapi
}
diff --git a/ACE/bin/MakeProjectCreator/config/vc9.features b/ACE/bin/MakeProjectCreator/config/vc9.features
new file mode 100644
index 00000000000..16181dc6293
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/vc9.features
@@ -0,0 +1,7 @@
+// $Id$
+
+ssl=0
+qos=1
+cidl=0
+rwho=0
+sctp=0
diff --git a/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb b/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb
new file mode 100644
index 00000000000..461c8f4bfc9
--- /dev/null
+++ b/ACE/bin/MakeProjectCreator/config/vc9nmake.mpb
@@ -0,0 +1,11 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ specific(nmake) {
+ compile_flags -= /EHsc
+ compile_flags += /EHa
+ addcompile -= /Wp64
+ }
+}
+
diff --git a/ACE/bin/MakeProjectCreator/config/vc8_warnings.mpb b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb
index 46c2b0c65fe..32e49922a7b 100644
--- a/ACE/bin/MakeProjectCreator/config/vc8_warnings.mpb
+++ b/ACE/bin/MakeProjectCreator/config/vc_warnings.mpb
@@ -1,28 +1,28 @@
// -*- MPC -*-
// $Id$
-// This file contains a number of optional features that disable VC8
-// warnings regarding various items that VC8 turned into warnings that were
+// This file contains a number of optional features that disable VC
+// warnings regarding various items that VC turned into warnings that were
// not present in earlier versions. Some people may consider these superfluous
// or have already checked code to be sure it causes no trouble. So these
// warnings are disabled by default. To enable them, generate your projects
// with the feature set to 0.
-feature(vc8_avoid_crt_secure_warnings) {
- specific(vc8, nmake) {
+feature(vc_avoid_crt_secure_warnings) {
+ specific(vc8, vc9, nmake) {
macros += _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
}
-feature(!vc8_scl_secure_warnings) {
- specific(vc8, nmake) {
+feature(!vc_scl_secure_warnings) {
+ specific(vc8, vc9, nmake) {
macros += _SCL_SECURE_NO_WARNINGS
}
}
-feature(vc8_avoid_this_in_initializer_warnings) {
- specific(vc8) {
+feature(vc_avoid_this_in_initializer_warnings) {
+ specific(vc8, vc9) {
DisableSpecificWarnings += 4355
}
specific(nmake) {
diff --git a/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt b/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt
index 4fe86bd9ab8..9d16b357afb 100644
--- a/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt
+++ b/ACE/bin/MakeProjectCreator/docs/templates/gnu.txt
@@ -11,7 +11,6 @@ cidlc_flags = The default flags for the cidl compiler.
dds = Indicates whether or not this project contains DDS code.
idl_files = When a Define_Custom(IDL) is used, they will be accessible through this variable name.
install = This is a synonym for exeout.
-link_groups = This indicates that statically linked executable library names will be surrounded by -Wl,--start-group and -Wl,--end-group for the GNU compiler only.
tao = Indicates whether or not this project contains TAO code.
tao_idl = The full path to the idl compiler.
tao_idl3_to_idl2 = The full path to the idl3 to idl2 compiler.
diff --git a/ACE/bin/MakeProjectCreator/templates/gnu.mpd b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
index 6af26002efe..93d1d5fe0a8 100644
--- a/ACE/bin/MakeProjectCreator/templates/gnu.mpd
+++ b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
@@ -453,8 +453,8 @@ endif
<%if(staticflags)%>
ifeq ($(static_libs),1)
CPPFLAGS +=<%foreach(staticflags)%> -D<%staticflag%><%endfor%>
-<%if(exename && link_groups)%>
- ifeq ($(notdir $(CXX)), g++)
+<%if(exename)%>
+ ifeq ($(link_groups), 1)
LDLIBS := -Wl,--start-group $(LDLIBS) -Wl,--end-group
endif
<%endif%>
diff --git a/ACE/bin/PerlACE/ConfigList.pm b/ACE/bin/PerlACE/ConfigList.pm
index 65a22272214..023e2f8cc9c 100644
--- a/ACE/bin/PerlACE/ConfigList.pm
+++ b/ACE/bin/PerlACE/ConfigList.pm
@@ -61,18 +61,18 @@ sub check_config (@)
{
my $self = shift;
my @testconfigs = @_;
- my $included = 0;
- my $excluded = 0;
- my $noincludes = 1;
+ my $the_config_allows_this = 1; # default case is true
+ # Go though each ID on the line in turn...
foreach my $config (@testconfigs) {
- if ($config =~ /^\w/) { $noincludes = 0; }
+ my $required_found = !($config =~ /^\w/);
foreach my $myconfig (@{$self->{MY_CONFIGS}}) {
- if ($config eq "!$myconfig") { $excluded = 1; }
- if ($config eq $myconfig) { $included = 1; }
+ if ($config eq "!$myconfig") { $the_config_allows_this = 0; }
+ if ($config eq $myconfig) { $required_found = 1; }
}
+ if (!$required_found) { $the_config_allows_this = 0; }
}
- return ($included || $noincludes) && !$excluded;
+ return $the_config_allows_this;
}
sub load ($)
diff --git a/ACE/bin/PerlACE/ProcessVX_Unix.pm b/ACE/bin/PerlACE/ProcessVX_Unix.pm
index 029d2169c6c..c600c957b60 100644
--- a/ACE/bin/PerlACE/ProcessVX_Unix.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Unix.pm
@@ -201,6 +201,8 @@ sub Spawn ()
my $t;
my $ok;
+ my $iboot;
+ my $text;
##
## initialize VxWorks kernel (reboot!) if needed
@@ -212,6 +214,36 @@ sub Spawn ()
system ($ENV{'ACE_RUN_VX_REBOOT_TOOL'});
}
else {
+ if (defined $ENV{'ACE_RUN_VX_IBOOT'}) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "Using iBoot: $ENV{'ACE_RUN_VX_IBOOT'}\n";
+ }
+ $iboot = IO::Socket::INET->new ("$ENV{'ACE_RUN_VX_IBOOT'}");
+ if ($iboot) {
+ $iboot->send ("\ePASS\ef\r");
+ $iboot->recv ($text,128);
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "iBoot is currently: $text\n";
+ }
+ close $iboot;
+ }
+ else {
+ print "ERROR: FAILED to execute 'reboot' command!\n";
+ }
+ $iboot = IO::Socket::INET->new ("$ENV{'ACE_RUN_VX_IBOOT'}");
+ if ($iboot) {
+ $iboot->send ("\ePASS\en\r");
+ $iboot->recv ($text,128);
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "iBoot is currently: $text\n";
+ }
+ close $iboot;
+ }
+ else {
+ print "ERROR: FAILED to execute 'reboot' command!\n";
+ }
+ }
+ else {
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
print "Executing 'reboot' command over Telnet to ".$ENV{'ACE_RUN_VX_TGTHOST'}.".\n";
}
@@ -228,6 +260,7 @@ sub Spawn ()
print "ERROR: FAILED to execute 'reboot' command!\n";
}
$t->close();
+ }
}
$set_vx_defgw = 1;
$do_vx_init = 0;
@@ -260,6 +293,14 @@ sub Spawn ()
@cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $cwdrel . '"';
@cmds[$cmdnr++] = 'C putenv("TMPDIR=' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . '")';
+ if (defined $ENV{'ACE_RUN_ACE_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("ACE_DEBUG=' . $ENV{"ACE_RUN_ACE_DEBUG"} . '")';
+ }
+
+ if (defined $ENV{'ACE_RUN_TAO_ORB_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("TAO_ORB_DEBUG=' . $ENV{"ACE_RUN_TAO_ORB_DEBUG"} . '")';
+ }
+
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@cmds[$cmdnr++] = 'C memShow()';
}
@@ -276,6 +317,14 @@ sub Spawn ()
@cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $cwdrel . '"';
@cmds[$cmdnr++] = 'putenv("TMPDIR=' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . '")';
+ if (defined $ENV{'ACE_RUN_ACE_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("ACE_DEBUG=' . $ENV{"ACE_RUN_ACE_DEBUG"} . '")';
+ }
+
+ if (defined $ENV{'ACE_RUN_TAO_ORB_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("TAO_ORB_DEBUG=' . $ENV{"ACE_RUN_TAO_ORB_DEBUG"} . '")';
+ }
+
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@cmds[$cmdnr++] = 'memShow()';
}
diff --git a/ACE/bin/PerlACE/ProcessVX_Win32.pm b/ACE/bin/PerlACE/ProcessVX_Win32.pm
index 80c8acce3c8..78693dac747 100644
--- a/ACE/bin/PerlACE/ProcessVX_Win32.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Win32.pm
@@ -89,8 +89,6 @@ sub Normalize_Executable_Name
$executable = $dirname.$basename.$self->{EXE_EXT};
}
- $executable =~ s/\//\\/g; # / <- # color coding issue in devenv
-
return $executable;
}
@@ -110,7 +108,6 @@ sub Executable
}
else {
$executable = $executable.$self->{EXE_EXT};
- $executable =~ s/\//\\/g; # / <- # color coding issue in devenv
}
return $executable;
@@ -187,6 +184,8 @@ sub Spawn ()
my $t;
my $ok;
+ my $iboot;
+ my $text;
##
## initialize VxWorks kernel (reboot!) if needed
@@ -198,6 +197,36 @@ sub Spawn ()
system ($ENV{'ACE_RUN_VX_REBOOT_TOOL'});
}
else {
+ if (defined $ENV{'ACE_RUN_VX_IBOOT'}) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "Using iBoot: $ENV{'ACE_RUN_VX_IBOOT'}\n";
+ }
+ $iboot = IO::Socket::INET->new ("$ENV{'ACE_RUN_VX_IBOOT'}");
+ if ($iboot) {
+ $iboot->send ("\ePASS\ef\r");
+ $iboot->recv ($text,128);
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "iBoot is currently: $text\n";
+ }
+ close $iboot;
+ }
+ else {
+ print "ERROR: FAILED to execute 'reboot' command!\n";
+ }
+ $iboot = IO::Socket::INET->new ("$ENV{'ACE_RUN_VX_IBOOT'}");
+ if ($iboot) {
+ $iboot->send ("\ePASS\en\r");
+ $iboot->recv ($text,128);
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "iBoot is currently: $text\n";
+ }
+ close $iboot;
+ }
+ else {
+ print "ERROR: FAILED to execute 'reboot' command!\n";
+ }
+ }
+ else {
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
print "Executing 'reboot' command over Telnet to ".$ENV{'ACE_RUN_VX_TGTHOST'}.".\n";
}
@@ -214,6 +243,7 @@ sub Spawn ()
print "ERROR: FAILED to execute 'reboot' command!\n";
}
$t->close();
+ }
}
$set_vx_defgw = 1;
$do_vx_init = 0;
@@ -229,6 +259,7 @@ sub Spawn ()
else {
$cwdrel = File::Spec->abs2rel( $cwdrel, $ENV{"ACE_ROOT"} );
}
+ $cwdrel =~ s/\\/\//g;
$program = basename($program, $self->{EXE_EXT});
unlink "run_vx.pl";
@@ -253,6 +284,14 @@ sub Spawn ()
@cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $cwdrel . '"';
@cmds[$cmdnr++] = 'C putenv("TMPDIR=' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . '")';
+ if (defined $ENV{'ACE_RUN_ACE_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("ACE_DEBUG=' . $ENV{"ACE_RUN_ACE_DEBUG"} . '")';
+ }
+
+ if (defined $ENV{'ACE_RUN_TAO_ORB_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("TAO_ORB_DEBUG=' . $ENV{"ACE_RUN_TAO_ORB_DEBUG"} . '")';
+ }
+
if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) {
@cmds[$cmdnr++] = 'C memShow()';
}
@@ -273,6 +312,14 @@ sub Spawn ()
@cmds[$cmdnr++] = 'memShow()';
}
+ if (defined $ENV{'ACE_RUN_ACE_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("ACE_DEBUG=' . $ENV{"ACE_RUN_ACE_DEBUG"} . '")';
+ }
+
+ if (defined $ENV{'ACE_RUN_TAO_ORB_DEBUG'}) {
+ @cmds[$cmdnr++] = 'putenv("TAO_ORB_DEBUG=' . $ENV{"ACE_RUN_TAO_ORB_DEBUG"} . '")';
+ }
+
@cmds[$cmdnr++] = 'ld <'. $program . $self->{EXE_EXT};
$cmdline = $program . $self->{EXE_EXT} . ' ' . $self->{ARGUMENTS};
if (defined $self->{ARGUMENTS}) {
diff --git a/ACE/bin/PerlACE/perlace.mpc b/ACE/bin/PerlACE/perlace.mpc
index ee60bdc70a9..8139eee3a2d 100644
--- a/ACE/bin/PerlACE/perlace.mpc
+++ b/ACE/bin/PerlACE/perlace.mpc
@@ -9,4 +9,5 @@ project(PerlACE) : script {
Process_Win32.pm
Run_Test.pm
}
+ custom_only=1
}
diff --git a/ACE/bin/fuzz.pl b/ACE/bin/fuzz.pl
index 10b159781b1..297ef6244c1 100755
--- a/ACE/bin/fuzz.pl
+++ b/ACE/bin/fuzz.pl
@@ -287,6 +287,89 @@ sub check_for_noncvs_files ()
}
}
+# This test checks for the use of ACE_SYNCH_MUTEX in TAO/CIAO,
+# TAO_SYNCH_MUTEX should used instead.
+
+sub check_for_ACE_SYNCH_MUTEX ()
+{
+ print "Running ACE_SYNCH_MUTEX check\n";
+ ITERATION: foreach $file (@files_cpp, @files_inl, @files_h) {
+ if (open (FILE, $file)) {
+ my $disable = 0;
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ ++$line;
+ if (/FUZZ\: disable check_for_ACE_SYNCH_MUTEX/) {
+ $disable = 1;
+ }
+ if (/FUZZ\: enable check_for_ACE_SYNCH_MUTEX/) {
+ $disable = 0;
+ next ITERATION;
+ }
+ if ($disable == 0 and /ACE_SYNCH_MUTEX/) {
+ # It is okay to use ACE_SYNCH_MUTEX in ACE
+ # so don't check the ACE directory. The below
+ # will check it for TAO and CIAO.
+ if (($file !~ /.*TAO.*/)) {
+ next ITERATION;
+ }
+
+ # Disable the check in the ESF directory for the
+ # time being until we fix the issues there.
+ if(($file =~ /.*TAO\/orbsvcs\/orbsvcs\/ESF.*/)) {
+ next ITERATION;
+ }
+
+ print_error ("$file:$.: found ACE_SYNCH_MUTEX, use TAO_SYNCH_MUTEX instead");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
+# This test checks for the use of ACE_Thread_Mutex in TAO/CIAO,
+# TAO_SYNCH_MUTEX should used instead to make the code build
+# in single-threaded builds.
+
+sub check_for_ACE_Thread_Mutex ()
+{
+ print "Running ACE_Thread_Mutex check\n";
+ ITERATION: foreach $file (@files_cpp, @files_inl, @files_h) {
+ if (open (FILE, $file)) {
+ my $disable = 0;
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ ++$line;
+ if (/FUZZ\: disable check_for_ACE_Thread_Mutex/) {
+ $disable = 1;
+ }
+ if (/FUZZ\: enable check_for_ACE_Thread_Mutex/) {
+ $disable = 0;
+ next ITERATION;
+ }
+ if ($disable == 0 and /ACE_Thread_Mutex/) {
+ # It is okay to use ACE_Thread_Mutex in ACE
+ # so don't check the ACE directory. The below
+ # will check it for TAO and CIAO.
+ if (($file !~ /.*TAO.*/)) {
+ next ITERATION;
+ }
+
+ print_error ("$file:$.: found ACE_Thread_Mutex, use TAO_SYNCH_MUTEX instead to allow the code to work in single-threaded builds");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
# This test checks for the use of tabs, spaces should be used instead of tabs
sub check_for_tab ()
{
@@ -1681,6 +1764,8 @@ if (!getopts ('cdhl:t:mv') || $opt_h) {
check_for_inline_in_cpp
check_for_id_string
check_for_newline
+ check_for_ACE_SYNCH_MUTEX
+ check_for_ACE_Thread_Mutex
check_for_tab
check_for_exception_spec
check_for_NULL
@@ -1742,6 +1827,8 @@ check_for_makefile_variable () if ($opt_l >= 1);
check_for_inline_in_cpp () if ($opt_l >= 2);
check_for_id_string () if ($opt_l >= 1);
check_for_newline () if ($opt_l >= 1);
+check_for_ACE_Thread_Mutex () if ($opt_l >= 1);
+check_for_ACE_SYNCH_MUTEX () if ($opt_l >= 1);
check_for_tab () if ($opt_l >= 1);
check_for_lack_ACE_OS () if ($opt_l >= 10);
check_for_exception_spec () if ($opt_l >= 1);
diff --git a/ACE/bin/make_release.py b/ACE/bin/make_release.py
index bdbdc6cde1b..a4f7f74ea52 100755
--- a/ACE/bin/make_release.py
+++ b/ACE/bin/make_release.py
@@ -694,6 +694,10 @@ def generate_workspaces (stage_dir):
static_vc8_option = ' -static -name_modifier *_vc8_Static -apply_project -exclude TAO/CIAO '
static_vc8_option += mpc_option
+ static_vc9_option = ' -static -name_modifier *_vc9_Static -apply_project -exclude TAO/CIAO '
+ static_vc9_option += mpc_option
+
+ vc9_option = ' -name_modifier *_vc9 '
vc8_option = ' -name_modifier *_vc8 '
vc71_option = ' -name_modifier *_vc71 '
@@ -712,6 +716,9 @@ def generate_workspaces (stage_dir):
print "\tGenerating GNUmakefiles...."
ex (mpc_command + " -type gnuace " + exclude_option + mpc_option + redirect_option)
+ print "\tGenerating VC9 solutions..."
+ ex (mpc_command + " -type vc9 " + mpc_option + vc9_option + redirect_option)
+
print "\tGenerating VC8 solutions..."
ex (mpc_command + " -type vc8 " + mpc_option + vc8_option + redirect_option)
@@ -730,6 +737,9 @@ def generate_workspaces (stage_dir):
print "\tGenerating VC8 Static solutions"
ex (mpc_command + " -type vc8 " + static_vc8_option + redirect_option)
+ print "\tGenerating VC9 Static solutions"
+ ex (mpc_command + " -type vc9 " + static_vc9_option + redirect_option)
+
print "\tBootstrapping autotools support"
ex ("bin/bootstrap " + redirect_option)
diff --git a/ACE/bin/msvc_mpc_auto_compile.pl b/ACE/bin/msvc_mpc_auto_compile.pl
index 03a35a680c0..02033d3be37 100755
--- a/ACE/bin/msvc_mpc_auto_compile.pl
+++ b/ACE/bin/msvc_mpc_auto_compile.pl
@@ -261,6 +261,10 @@ while ( $#ARGV >= 0 && $ARGV[0] =~ /^(-|\/)/ )
print "Using VC8 files\n" if ( $verbose );
$vc7 = 1; # vc8 is like vc7
}
+ elsif ($ARGV[0] =~ '-vc9') { # Use VC9 project and solution files.
+ print "Using VC9 files\n" if ( $verbose );
+ $vc7 = 1; # vc9 is like vc7
+ }
elsif ($ARGV[0] =~ '-v') { # verbose mode
$verbose = 1;
}
diff --git a/ACE/bin/msvc_static_compile.pl b/ACE/bin/msvc_static_compile.pl
index 7798f931d10..aadc0039ffe 100755
--- a/ACE/bin/msvc_static_compile.pl
+++ b/ACE/bin/msvc_static_compile.pl
@@ -261,6 +261,11 @@ while ( $#ARGV >= 0 && $ARGV[0] =~ /^(-|\/)/ )
$vc7 = 1; # VC8 is like VC7
$proj_ext = '.vcproj';
}
+ elsif ($ARGV[0] =~ '-vc9') { # Use VC9 project and solution files.
+ print "Using VC9 files\n" if ( $verbose );
+ $vc7 = 1; # VC9 is like VC7
+ $proj_ext = '.vcproj';
+ }
elsif ($ARGV[0] =~ '-v') { # verbose mode
$verbose = 1;
}
diff --git a/ACE/bin/tao_orb_tests.lst b/ACE/bin/tao_orb_tests.lst
index 252513ea90e..902ea099f42 100644
--- a/ACE/bin/tao_orb_tests.lst
+++ b/ACE/bin/tao_orb_tests.lst
@@ -50,7 +50,7 @@ TAO/tests/Bug_1535_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MI
TAO/tests/Bug_1568_Regression/run_test.pl: !NO_MESSAGING !CORBA_E_MICRO
TAO/tests/Bug_1670_Regression/run_test.pl: !NO_MESSAGING !CORBA_E_MICRO
TAO/tests/Bug_1270_Regression/run_test.pl: !Win32 !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
-TAO/tests/Bug_1020_Basic_Regression/run_test.pl: !Win32 !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
+TAO/tests/Bug_1020_Basic_Regression/run_test.pl: !Win32 !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !VxWorks
TAO/tests/Bug_1020_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !Win32
TAO/tests/Bug_1254_Regression/run_test.pl:
TAO/tests/Bug_1330_Regression/run_test.pl:
@@ -105,6 +105,9 @@ TAO/tests/Bug_2966_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MI
TAO/tests/Bug_3000_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/tests/Bug_3042_Regression/run_test.pl:
TAO/tests/Bug_3108_Regression/run_test.pl: !ST
+TAO/tests/Bug_3154_Regression/run_test.pl:
+TAO/tests/Bug_3163_Regression/run_test.pl:
+TAO/tests/Bug_3171_Regression/run_test.pl: !ST !MINIMUM
TAO/tests/DIOP/run_test.pl: !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/DIOP/run_test_ipv6.pl: IPV6 !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO
TAO/tests/RTCORBA/Activate_Object_Multiple_ORBs/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
@@ -156,7 +159,7 @@ TAO/tests/No_Server_MT_Connect_Test/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !
TAO/tests/Connect_Strategy_Test/run_test.pl:
# DISABLED TAO/tests/Client_Leaks/run_test.pl: !VxWorks !ST !Tru64
TAO/tests/Server_Leaks/run_test.pl
-TAO/tests/Smart_Proxies/Policy/run_test.pl: !VxWorks
+TAO/tests/Smart_Proxies/Policy/run_test.pl:
TAO/tests/Smart_Proxies/run_test.pl:
TAO/tests/Smart_Proxies/dtor/run_test.pl:
TAO/tests/Stack_Recursion/run_test.pl: !ST !DISABLE_ToFix_LynxOS_PPC
@@ -251,7 +254,7 @@ TAO/tests/Oneways_Invoking_Twoways/run_test.pl: !ST
TAO/tests/Queued_Message_Test/run_test.pl:
TAO/tests/DLL_ORB/run_test.pl: !STATIC
TAO/tests/InterOp-Naming/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
-TAO/tests/Multiple/run_test.pl: !VxWorks !SUNCC5_1
+TAO/tests/Multiple/run_test.pl: !SUNCC5_1
TAO/tests/Exposed_Policies/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !ACE_FOR_TAO
TAO/tests/Portable_Interceptors/Bug_1559/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/Portable_Interceptors/Bug_2510_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ST
@@ -278,8 +281,9 @@ TAO/tests/Portable_Interceptors/AdvSlotExt/run_test.pl: !MINIMUM !CORBA_E_COMPAC
TAO/tests/Portable_Interceptors/Redirection/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/Portable_Interceptors/Bug_3079/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/Portable_Interceptors/Bug_3080/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
+TAO/tests/Portable_Interceptors/Bug_2133/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/ORT/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
-TAO/tests/Object_Loader/run_test.pl: !VxWorks !STATIC
+TAO/tests/Object_Loader/run_test.pl: !STATIC
TAO/tests/Two_Objects/run_test.pl: !ST
TAO/tests/TransportCurrent/Framework/run_test.pl -dynamic: !DISABLE_TRANSPORT_CURRENT !STATIC !DISABLE_INTERCEPTORS !MINIMUM
TAO/tests/TransportCurrent/Framework/run_test.pl -static: !DISABLE_TRANSPORT_CURRENT STATIC !DISABLE_INTERCEPTORS !MINIMUM
@@ -292,36 +296,37 @@ TAO/tests/Sequence_Unit_Tests/run_test.pl -noboost:
TAO/tests/Sequence_Unit_Tests/run_test.pl -boost: BOOST
TAO/tests/Typedef_String_Array/run_test.pl:
TAO/tests/GIOP_Fragments/PMB_With_Fragments/run_test.pl: !CORBA_E_MICRO
-TAO/tests/CodeSets/simple/run_test.pl: !VxWorks !GIOP10 !STATIC
+TAO/tests/CodeSets/simple/run_test.pl: !GIOP10 !STATIC
TAO/tests/Hang_Shutdown/run_test.pl: !ST !ACE_FOR_TAO
TAO/tests/Any/Recursive/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl collocated: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_orbthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_servants: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_csdthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl collocated: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_orbthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_servants: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_csdthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl collocated: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_orbthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_servants: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_csdthreads: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl big: !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl: !STATIC !ST !VxWorks !CORBA_E_MICRO
-TAO/tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl: !ST !VxWorks !CORBA_E_MICRO
+TAO/tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl collocated: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_orbthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_servants: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_csdthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl remote_big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl collocated: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_orbthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_servants: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_csdthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl remote_big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl collocated: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_orbthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_servants: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_csdthreads: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl remote_big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl big: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl: !STATIC !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl: !ST !CORBA_E_MICRO !LynxOS
+TAO/tests/CSD_Collocation/run_test.pl: !ST !CORBA_E_COMPACT !CORBA_E_MICRO !MINIMUM !LynxOS
TAO/tests/Permanent_Forward/run_test.pl:
TAO/tests/Parallel_Connect_Strategy/run_test.pl:
TAO/tests/DII_Collocation_Tests/oneway/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
diff --git a/ACE/bin/tao_other_tests.lst b/ACE/bin/tao_other_tests.lst
index 0a83c81e9fa..042f641e407 100644
--- a/ACE/bin/tao_other_tests.lst
+++ b/ACE/bin/tao_other_tests.lst
@@ -94,6 +94,8 @@ TAO/orbsvcs/tests/InterfaceRepo/IFR_Inheritance_Test/run_test.pl: !MINIMUM !COR
TAO/orbsvcs/tests/InterfaceRepo/Latency_Test/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO
TAO/orbsvcs/tests/InterfaceRepo/Persistence_Test/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO
TAO/orbsvcs/tests/InterfaceRepo/Bug_2962_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO
+TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO
+TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO
TAO/orbsvcs/tests/ImplRepo/run_test.pl both_ir: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO
TAO/orbsvcs/tests/ImplRepo/run_test.pl nestea_ir: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO
TAO/orbsvcs/tests/ImplRepo/run_test.pl airplane_ir: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO
diff --git a/ACE/configure.ac b/ACE/configure.ac
index 37fb079b94f..2ea6f6481c8 100644
--- a/ACE/configure.ac
+++ b/ACE/configure.ac
@@ -57,7 +57,7 @@ dnl Check what platform we are running on.
AC_CANONICAL_TARGET([])
dnl Initialize GNU Automake, and require Automake 1.9.6 or better.
-AM_INIT_AUTOMAKE([1.9.6 foreign no-define])
+AM_INIT_AUTOMAKE([1.9.6 foreign no-define nostdinc])
dnl Add maintainer mode option to the option list.
dnl AM_MAINTAINER_MODE
@@ -2490,7 +2490,16 @@ ACE_CACHE_CHECK([if const char * can be rvalue in conditional operator],
],,[AC_DEFINE([ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS])])
dnl Check if templates require source on platform
-dnl FIXME: This test may be broken.
+dnl
+dnl FIXME: This test may be broken.
+dnl
+dnl FIXME: This test contains vestigial bits of tests for explicit
+dnl template instantiation feature macros, even though support for
+dnl the same has been removed.
+dnl
+dnl A rewrite to test only whether ACE_TEMPLATES_REQUIRE_SOURCE or
+dnl ACE_TEMPLATES_REQUIRE_PRAGMA is clearly needed.
+dnl
ACE_CACHE_CHECK([if templates require source],
[ace_cv_feature_templates_require_source],
[
@@ -2954,40 +2963,6 @@ dnl END OUTER REQUIRE PRAGMA #########################################
])
])
-ACE_CACHE_CHECK([if explicit template instantiation is needed],
- [ace_cv_feature_explicit_template_instantiation],
- [
- AC_MSG_ERROR([
-Bug in configure script, check for need of explicit template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE([ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION])
- ],
- [
- ACE_CACHE_CHECK([if pragma template instantiation is needed],
- [ace_cv_feature_pragma_template_instantiation],
- [
- AC_MSG_FAILURE([
-Bug in configure script, check for need of pragma template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE([ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA])
- ],
- [
- dnl Do nothing
- ])
- ])
-
dnl Check if platform supports template specialization
ACE_CACHE_CHECK([for template specialization],
@@ -3468,7 +3443,18 @@ ACE_CHECK_LACKS_FUNCS(alarm)
ACE_CHECK_LACKS_FUNCS(bsearch)
-ACE_CHECK_HAS_FUNCS(bswap_16 bswap_32 bswap_64)
+ACE_CHECK_HAS_DEFINES([bswap16])
+if test "$ace_cv_defined_bswap16" = no; then
+ ACE_CHECK_HAS_DEFINES([bswap_16])
+fi
+ACE_CHECK_HAS_DEFINES([bswap32])
+if test "$ace_cv_defined_bswap32" = no; then
+ ACE_CHECK_HAS_DEFINES([bswap_32])
+fi
+ACE_CHECK_HAS_DEFINES([bswap64])
+if test "$ace_cv_defined_bswap64" = no; then
+ ACE_CHECK_HAS_DEFINES([bswap_64])
+fi
ACE_CHECK_LACKS_FUNCS(chdir)
@@ -4115,6 +4101,8 @@ ACE_CHECK_LACKS_FUNCS(unlink)
ACE_CHECK_HAS_FUNCS(vasprintf vaswprintf vfwprintf vswprintf)
+ACE_CHECK_HAS_FUNCS(wcsnlen)
+
ACE_CHECK_LACKS_FUNCS(fgetws fputws itow towlower towupper wcscat wcschr wcscmp wcscpy wcscspn wcslen wcsncat wcsncmp wcsncpy wcsnicmp wcspbrk wcsrchr wcsspn wcsstr wcstod wcstok wcstol wcstoul)
if test "$ac_cv_func_wcstok" = yes; then
@@ -4428,7 +4416,8 @@ main ()
dnl action if cross-compiling
ace_cv_sem_timedwait_works=yes
])
- ],,)
+ ],
+ [AC_DEFINE([ACE_HAS_POSIX_SEM_TIMEOUT])],)
fi
@@ -7040,7 +7029,8 @@ ACE_CACHE_CHECK([if running on an Alpha],
dnl We only define ACE_HAS_ALPHA_TIMER if we are running Linux
dnl on an Alpha and are using GNU C++!
if test "$GXX" = yes; then
- AC_DEFINE([ACE_HAS_ALPHA_TIMER])
+ AC_DEFINE([ACE_HAS_ALPHA_TIMER], 1,
+ [Define to 1 if system should use Alpha's cycle counter])
fi
;;
esac
@@ -7066,7 +7056,8 @@ ACE_CACHE_CHECK([if running on a Power PC],
*)
dnl Only define ACE_HAS_POWERPC_TIMER when using GNU C++!
if test "$GXX" = yes; then
- AC_DEFINE([ACE_HAS_POWERPC_TIMER])
+ AC_DEFINE([ACE_HAS_POWERPC_TIMER], 1,
+ [Define to 1 if system should use PowerPC's cycle counter])
fi
;;
esac
@@ -7091,10 +7082,27 @@ dnl since gethrtime.cpp uses assembler code specific to that compiler.
esac
],
[
- AC_DEFINE([ACE_HAS_PENTIUM])
+ AC_DEFINE([ACE_HAS_PENTIUM], 1,
+ [Define to 1 if system is using Intel Pentium(tm) processor])
],)
AM_CONDITIONAL([ACE_ON_PENTIUM], [test X$ace_cv_feature_pentium = Xyes])
+case "$host" in
+ i386-* | i486-* | i586-* | i686-* | x86_64-*)
+ if test "$GXX" = yes; then
+ ace_cv_has_intel_assembly=yes
+ else
+ ace_cv_has_intel_assembly=no
+ fi
+ ;;
+ *)
+ ace_cv_has_intel_assembly=no
+ ;;
+esac
+if test "$ace_cv_has_intel_assembly" != "no"; then
+ AC_DEFINE([ACE_HAS_INTEL_ASSEMBLY], 1,
+ [Define to 1 if the system supports x86/x86_64 inline assembly])
+fi
dnl
dnl SECTION 14: checks for aggregated features
diff --git a/ACE/contrib/minizip/minizip.mpc b/ACE/contrib/minizip/minizip.mpc
index c6b5dc3daa6..d02914de641 100644
--- a/ACE/contrib/minizip/minizip.mpc
+++ b/ACE/contrib/minizip/minizip.mpc
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project (minizip) : zlib, vc8_warnings {
+project (minizip) : zlib, vc_warnings {
sharedname = minizip
libout = $(ACE_ROOT)/lib
dynamicflags += MINIZIP_BUILD_DLL
diff --git a/ACE/docs/ACE-bug-process.html b/ACE/docs/ACE-bug-process.html
index 41ca26b6417..5ae7e0d2b39 100644
--- a/ACE/docs/ACE-bug-process.html
+++ b/ACE/docs/ACE-bug-process.html
@@ -176,6 +176,17 @@ that can be used to keep track of changes to your platform/compiler
combiation and ensure things continue to work as the ACE+TAO source
code evolves. <P>
+<LI> By submitting bug fixes submitters acknowledge that they have the
+right to do so, that any such submissions are given freely and
+unreservedly, and that they waive any claims to copyright or
+ownership. In addition, submitters acknowledge that any such
+submission might become part of the copyright maintained on the
+overall body of code that comprises the DOC software. By making a bug
+fix submission, submitter agree to these terms. Moreover, submitters
+acknowledge that the incorporation or modification of such submissions
+is entirely at the discretion of the moderators of the open-source DOC
+software projects or their designees. <P>
+
</OL>
Please be sensitive to the fact that the core <A
diff --git a/ACE/docs/ACE-development-process.html b/ACE/docs/ACE-development-process.html
index ecae894332e..5c4717c199c 100644
--- a/ACE/docs/ACE-development-process.html
+++ b/ACE/docs/ACE-development-process.html
@@ -173,6 +173,28 @@ into the repository etc. The idea is to allow commercial support
vendors to stabilize the major or minor release for their product
offerings. <p>
+<p><hr>
+<H3>Contributions from the Open-Source Community</H3>
+<P>
+
+Over the years, ACE+TAO+CIAO have benefitted significantly from
+contributions by <A
+HREF="http://www.cs.wustl.edu/~schmidt/ACE-members.html">thousands</A>
+of deveopers in the open-source community. To avoid fragmentation of
+the code base, by submitting comments, suggestions, code, code
+snippets, techniques (including that of usage) and algorithms
+(collectively ``Submissions''), submitters acknowledge that they have
+the right to do so, that any such Submissions are given freely and
+unreservedly, and that they waive any claims to copyright or
+ownership. In addition, submitters acknowledge that any such
+Submission might become part of the copyright maintained on the
+overall body of code that comprises the open-source DOC Group
+software. By making a Submission, submitter agree to these terms.
+Moreover, submitters acknowledge that the incorporation or
+modification of such Submissions is entirely at the discretion of the
+moderators of the open-source DOC software projects or their
+designees.
+
<hr><p>
<font size=-1>
Last modified
diff --git a/ACE/docs/Download.html b/ACE/docs/Download.html
index 606f1ac7ac9..2684bdcadd6 100644
--- a/ACE/docs/Download.html
+++ b/ACE/docs/Download.html
@@ -65,7 +65,7 @@ document to decide which version below is more appropriate for your
case. You may want to understand the DOC group's <A
HREF="https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/ACE-bug-process.html?revision=HEAD">
bug fixing policies</A> when you make this decision.
-</P>The full packages do contain all sources with pre generated makefiles for GNU make, Visual C++ 7.1/8.0, Borland
+</P>The full packages do contain all sources with pre generated makefiles for GNU make, Visual C++ 7.1/8.0/9.0, Borland
C++ make, and GNU autoconf. The sources only packes just contain the sources, you have to generate your
own makefiles with MPC.
</P>
@@ -80,101 +80,101 @@ of the ACE, TAO, and CIAO beta kit is available for
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
<TR><TD>ACE+TAO+CIAO.tar.gz</TD>
<TD>ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.tar.bz2</TD>
<TD>ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.zip</TD>
<TD>ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.2.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.2.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.gz</TD>
<TD>ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.bz2</TD>
<TD>ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.2.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.2.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.gz</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.bz2</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.zip</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.2.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.gz</TD>
<TD>ACE only (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.bz2</TD>
<TD>ACE only (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.2.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.1.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.2.zip">FTP</A>]
</TD>
</TR>
</TABLE>
diff --git a/ACE/docs/bczar/bczar.html b/ACE/docs/bczar/bczar.html
index 22446bbde7f..7e076de8c83 100644
--- a/ACE/docs/bczar/bczar.html
+++ b/ACE/docs/bczar/bczar.html
@@ -181,10 +181,9 @@ you execute these commands all users can download these packages.</li>
<code>
cp $DOC_ROOT/packages-PID/ACE* /export/www/download.dre/ACE+TAO-distribution<br>
</code>
-<li>Once the distribution is ready, get ready for creating doxygen
-documentation. This is slightly complicated than it requires. We will
-address the complexity soon.</li>
-<li>Login to naboo.dre.vanderbilt.edu as bczar</li>
+<li>After the repository is tagged you can start generating the doxygen
+documentation.</li>
+<li>Login to naboo.dre.vanderbilt.edu as bczar: <code>ssh bczar@naboo.dre.vanderbilt.edu</code></li>
<ul><li>After login, ssh to bczar@download.dre.vanderbilt.edu as bczar and check whether ssh succeeds. If not fix the problem. The make script tries to copy the tar.gz files to the website using ssh.</li></ul>
<li> go to /web/users/isisbuilds/tmp/ACE_wrappers and remove the contents of this directory</li>
<li> Update the workspace with the right version tag </li>
@@ -314,7 +313,7 @@ as Solaris).<br>
15. When you get an account to access the cvs repo, make sure you are added to the correct groups, for example, gid=100(users),5000(doc),5002(acetaodev),5003(cvs). Otherwise you will have problem to checkout various modules.<br>
16. Install your public key to the different machines you have frequent access to avoid typing password.<br>
17. Update this page if you have any more tips for future build czars :-). This
-page is <code>bugzilla@deuce.doc.wustl.edu:~/.www-docs/index.html</code><br>
+page is in svn under <code>ACE_wrappres/docs/bczar/bczar.html</code><br>
</p>
</body>
diff --git a/ACE/etc/index.html b/ACE/etc/index.html
index 9fe34620cbb..86ef5298182 100644
--- a/ACE/etc/index.html
+++ b/ACE/etc/index.html
@@ -35,6 +35,7 @@
<hr>
We do have the documentation for previous releases and beta's
<ul>
+ <LI><P><A HREF="5.6.2/html">5.6.2</A></P></LI>
<LI><P><A HREF="5.6.1/html">5.6.1</A></P></LI>
<LI><P><A HREF="5.6/html">5.6</A></P></LI>
<LI><P><A HREF="5.5.10/html">5.5.10</A></P></LI>
diff --git a/ACE/examples/APG/Reactor/HAStatus-AC.cpp b/ACE/examples/APG/Reactor/HAStatus-AC.cpp
index 38d994f30d1..4d8c974c614 100644
--- a/ACE/examples/APG/Reactor/HAStatus-AC.cpp
+++ b/ACE/examples/APG/Reactor/HAStatus-AC.cpp
@@ -62,7 +62,7 @@ ClientService::handle_input (ACE_HANDLE)
0);
if (send_cnt == -1)
send_cnt = 0;
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
size_t remaining =
static_cast<size_t> ((recv_cnt - send_cnt));
ACE_NEW_RETURN (mb, ACE_Message_Block (remaining), -1);
@@ -88,7 +88,7 @@ ClientService::handle_input (ACE_HANDLE)
int
ClientService::handle_output (ACE_HANDLE)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_Time_Value nowait (ACE_OS::gettimeofday ());
while (-1 != this->getq (mb, &nowait))
{
diff --git a/ACE/examples/Connection/non_blocking/CPP-connector.cpp b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
index e113b5f5acb..94ac62fc28f 100644
--- a/ACE/examples/Connection/non_blocking/CPP-connector.cpp
+++ b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
@@ -148,12 +148,10 @@ Peer_Handler<PR_ST_2>::handle_output (ACE_HANDLE)
}
template <PR_ST_1> int
-Peer_Handler<PR_ST_2>::handle_signal (int signum,
+Peer_Handler<PR_ST_2>::handle_signal (int,
siginfo_t *,
ucontext_t *)
{
- ACE_UNUSED_ARG (signum);
-
// @@ Note that this code is not portable to all OS platforms since
// it uses print statements within signal handler context.
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("in handle_signal\n")));
diff --git a/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp b/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
index 522cbd1add9..4a5a6c78938 100644
--- a/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
+++ b/ACE/examples/Reactor/Multicast/Log_Wrapper.cpp
@@ -44,8 +44,8 @@ Log_Wrapper::open (const int port, const char *mcast_addr)
// This starts out initialized to all zeros!
server_ = ACE_INET_Addr (port, mcast_addr);
- if (logger_.subscribe (server_) == -1)
- ACE_OS::perror("can't subscribe to multicast group"), ACE_OS::exit(1);
+ if (logger_.join (server_) == -1)
+ ACE_OS::perror("can't join to multicast group"), ACE_OS::exit(1);
// success.
return 0;
diff --git a/ACE/examples/Reactor/Multicast/server.cpp b/ACE/examples/Reactor/Multicast/server.cpp
index ef1b53e670a..5d69a646779 100644
--- a/ACE/examples/Reactor/Multicast/server.cpp
+++ b/ACE/examples/Reactor/Multicast/server.cpp
@@ -91,7 +91,7 @@ Server_Events::Server_Events (u_short port,
"%p\n",
"hostname"));
- else if (this->mcast_dgram_.subscribe (this->mcast_addr_) == -1)
+ else if (this->mcast_dgram_.join (this->mcast_addr_) == -1)
ACE_ERROR ((LM_ERROR,
"%p\n",
"subscribe"));
@@ -109,7 +109,7 @@ Server_Events::Server_Events (u_short port,
Server_Events::~Server_Events (void)
{
- this->mcast_dgram_.unsubscribe ();
+ this->mcast_dgram_.leave (this->mcast_addr_);
ACE_DEBUG ((LM_DEBUG,
"total bytes received = %d after %d second\n",
diff --git a/ACE/examples/Reactor/Ntalker/ntalker.cpp b/ACE/examples/Reactor/Ntalker/ntalker.cpp
index 80873ead1a9..e73b3ae8b60 100644
--- a/ACE/examples/Reactor/Ntalker/ntalker.cpp
+++ b/ACE/examples/Reactor/Ntalker/ntalker.cpp
@@ -46,6 +46,9 @@ public:
private:
ACE_SOCK_Dgram_Mcast mcast_;
// Multicast wrapper.
+
+ ACE_INET_Addr sockmc_addr_;
+ // Address to multicast to.
};
ACE_HANDLE
@@ -134,29 +137,28 @@ Handler::handle_close (ACE_HANDLE h, ACE_Reactor_Mask)
Handler::~Handler (void)
{
- if (this->mcast_.unsubscribe () == -1)
+ if (this->mcast_.leave (sockmc_addr_) == -1)
ACE_ERROR ((LM_ERROR,
"%p\n",
- "unsubscribe fails"));
+ "leave fails"));
}
Handler::Handler (u_short udp_port,
const char *ip_addr,
- const ACE_TCHAR *a_interface,
+ const ACE_TCHAR *a_interface,
ACE_Reactor &reactor)
{
// Create multicast address to listen on.
- ACE_INET_Addr sockmc_addr (udp_port, ip_addr);
+ this->sockmc_addr_ = ACE_INET_Addr (udp_port, ip_addr);
// subscribe to multicast group.
- if (this->mcast_.subscribe (sockmc_addr, 1, a_interface) == -1)
- {
- ACE_ERROR ((LM_ERROR,
+ if (this->mcast_.join (sockmc_addr_, 1, a_interface) == -1)
+ ACE_ERROR ((LM_ERROR,
"%p\n",
"can't subscribe to multicast group"));
- }
+
// Disable loopbacks.
// if (this->mcast_.set_option (IP_MULTICAST_LOOP, 0) == -1 )
// ACE_OS::perror (" can't disable loopbacks " ), ACE_OS::exit (1);
@@ -170,11 +172,11 @@ Handler::Handler (u_short udp_port,
"can't register with Reactor\n"));
// Register the STDIN handler.
else if (ACE_Event_Handler::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "register_stdin_handler"));
+ ACE_Reactor::instance (),
+ ACE_Thread_Manager::instance ()) == -1)
+ ACE_ERROR ((LM_ERROR,
+ "%p\n",
+ "register_stdin_handler"));
}
static void
diff --git a/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp b/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
index 82ace8f657c..d7bcdd15989 100644
--- a/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
+++ b/ACE/examples/Service_Configurator/Misc/Timer_Service.cpp
@@ -35,7 +35,7 @@ Timer_Service_1::init (int argc, ACE_TCHAR *argv[])
interval = ACE_OS::atoi (argv[1]);
if (interval == 0)
- interval = Timer_Service_1::TIMEOUT;
+ interval = Timer_Service_1::TIMEOUT;
}
if (argc > 2)
@@ -45,7 +45,7 @@ Timer_Service_1::init (int argc, ACE_TCHAR *argv[])
this->max_timeouts_ = ACE_OS::atoi (argv[2]);
if (this->max_timeouts_ == 0)
- this->max_timeouts_ = Timer_Service_1::MAX_TIMEOUTS;
+ this->max_timeouts_ = Timer_Service_1::MAX_TIMEOUTS;
}
this->cur_timeouts_ = 0;
diff --git a/ACE/examples/Service_Configurator/Misc/main.cpp b/ACE/examples/Service_Configurator/Misc/main.cpp
index 11db456fed4..d3bd663ad48 100644
--- a/ACE/examples/Service_Configurator/Misc/main.cpp
+++ b/ACE/examples/Service_Configurator/Misc/main.cpp
@@ -48,8 +48,8 @@ ACE_TMAIN (int, ACE_TCHAR *argv[])
args.add (ACE_TEXT ("-S"));
args.add (ACE_TEXT ("\"dynamic Timer_Service_2 Service_Object * Timer:_make_Timer_Service_2() 'timer 2 10 $TRACE'\""));
// Test the -f option!
- args.add (ACE_TEXT ("-fsvc.conf1"));
- args.add (ACE_TEXT ("-fsvc.conf2"));
+ args.add (ACE_TEXT ("-f svc.conf1"));
+ args.add (ACE_TEXT ("-f svc.conf2"));
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("argc = %d\n"),
diff --git a/ACE/include/makeinclude/platform_aix_ibm.GNU b/ACE/include/makeinclude/platform_aix_ibm.GNU
index a977d96dacc..7ca8fb094d6 100644
--- a/ACE/include/makeinclude/platform_aix_ibm.GNU
+++ b/ACE/include/makeinclude/platform_aix_ibm.GNU
@@ -1,10 +1,7 @@
# $Id$
-# This file is for use with AIX 4.3 and up, using either of the IBM
-# compilers (IBM C/C++ 3.6.6 or Visual Age C++ 5 or 6 batch compiler).
-# If you wish to use the CSet++ compiler, please use platform_aix4_cset++.GNU.
-# Note that as of ACE 5.4, the only supported compilers from IBM are
-# Visual Age C++ 6 and up.
+# This file is for use with AIX 5.x and up, using either of the IBM
+# compilers (Visual Age C++ 6 or newer compiler).
debug ?= 1
distrib ?= 0
@@ -86,71 +83,57 @@ endif
DCCFLAGS += -g -qcheck=nobounds:div:null
DCFLAGS += -g
-# Now sort out the compiler differences here...
-ifeq ($(XLCVERSION),0x0306)
- SHR_FILTER=$(ACE_ROOT)/bin/aix_shr
- TEMPINCDIR = tempinc
- CCFLAGS += -qlanglvl=ansi -qflag=e:e -qonce -qtempinc=$(TEMPINCDIR) -DACE_TEMPLATES_REQUIRE_PRAGMA
- SOFLAGS += -p 0
-# ibmcxx_build turns on the extra step for instantiating and compiling
-# template instances in rules.lib.GNU.
- ibmcxx_build = 1
-else # Visual Age 5 and up
- ifeq ($(XLCVERSION),0x0500)
- SHR_FILTER=$(ACE_ROOT)/bin/aix_shr
- TEMPINCDIR = tempinc
- CCFLAGS += -qflag=w:w -qonce -qtempinc=$(TEMPINCDIR)
+ifeq ($(XLCVERSION),0x0600)
+ # This is just for the workaround for aio, above. Without it, the
+ # compiler warns that __C99_RESTRICT is reserved. When that workaround
+ # is gone, this ifeq can be removed also. -qflag=w:w is what we want
+ # in the end.
+ CCFLAGS += -qtemplateregistry=templateregistry.$(MAKEFILE)
+ ifeq (502,$(AIX_VERS))
+ CCFLAGS += -qflag=e:e
else
- ifeq ($(XLCVERSION),0x0600)
- # This is just for the workaround for aio, above. Without it, the
- # compiler warns that __C99_RESTRICT is reserved. When that workaround
- # is gone, this ifeq can be removed also. -qflag=w:w is what we want
- # in the end.
- CCFLAGS += -qtemplateregistry=templateregistry.$(MAKEFILE)
- ifeq (502,$(AIX_VERS))
- CCFLAGS += -qflag=e:e
- else
- CCFLAGS += -qflag=w:w
- endif
+ CCFLAGS += -qflag=w:w
+ endif
+else
+ ifeq ($(XLCVERSION),0x0700)
+ CCFLAGS += -qflag=w:w
+ ifeq ($(templates),manual)
+ CCFLAGS += -qnotempinc -qnotemplateregistry
else
- ifeq ($(XLCVERSION),0x0700)
- CCFLAGS += -qflag=w:w
- ifeq ($(templates),manual)
- CCFLAGS += -qnotempinc -qnotemplateregistry
- else
- CCFLAGS += -qtemplateregistry=templateregistry.$(MAKEFILE)
- endif
- # According to documentation, default is -qeh, which is equivalent
- # to -qeh=v5. Apparently 6.0 fixed some problems with nested
- # try-catch blocks.
- ifeq ($(exceptions),1)
- CCFLAGS += -qeh=v6
- endif
- else
- CXX = echo "Unrecognized compiler version $(XLCVERSION)\n"
- endif
+ CCFLAGS += -qtemplateregistry=templateregistry.$(MAKEFILE)
endif
- endif
- DLD = $(CXX) -qmkshrobj
- SOFLAGS += $(CCFLAGS) $(CPPFLAGS) $(INCLDIRS)
- ifeq ($(buildbits),64)
- DLD += -q64
- CFLAGS += -q64 -qwarn64
- CCFLAGS += -q64 -qwarn64
- ARFLAGS := -X64 $(ARFLAGS)
-
- # This option results in a crash of TAO when building 64bit with
- # Visual Age 6. No idea why but don't use it when using Visual Age 6.
- ifneq ($(XLCVERSION),0x0600)
- # CCFLAGS += -qstaticinline
+ # According to documentation, default is -qeh, which is equivalent
+ # to -qeh=v5. Apparently 6.0 fixed some problems with nested
+ # try-catch blocks.
+ ifeq ($(exceptions),1)
+ CCFLAGS += -qeh=v6
endif
else
- # Using 32bit the staticinline option works.
- #CCFLAGS += -qstaticinline
+ CXX = echo "Unrecognized compiler version $(XLCVERSION)\n"
endif
- CCFLAGS += -qfuncsect
endif
+DLD = $(CXX) -qmkshrobj
+SOFLAGS += $(CCFLAGS) $(CPPFLAGS) $(INCLDIRS)
+
+ifeq ($(buildbits),64)
+ DLD += -q64
+ CFLAGS += -q64 -qwarn64
+ CCFLAGS += -q64 -qwarn64
+ ARFLAGS := -X64 $(ARFLAGS)
+
+ # This option results in a crash of TAO when building 64bit with
+ # Visual Age 6. No idea why but don't use it when using Visual Age 6.
+ ifneq ($(XLCVERSION),0x0600)
+ # CCFLAGS += -qstaticinline
+ endif
+else
+ # Using 32bit the staticinline option works.
+ #CCFLAGS += -qstaticinline
+endif
+
+CCFLAGS += -qfuncsect
+
# The Visual Age preprocessor is not usable with the TAO_IDL compiler.
# At the moment an idl file just contains includes of other idl files
# the Visual Age preprocessor doesn't report that file in the list of
@@ -182,7 +165,4 @@ SOVERSION =
# either in this file or on the command line.
#OCCFLAGS += -qarch=ppc -qtune=604
-# -O2 is too much for Visual Age C++ 5.0. It ends up calling
-# the wrong methods in some cases (orbsvcs/tests/EC_Throughput).
-# Chad Elliott 7/24/2001
-OCCFLAGS += -qlibansi -O -qarch=com
+OCCFLAGS += -qlibansi -O2 -qarch=com
diff --git a/ACE/include/makeinclude/platform_g++_common.GNU b/ACE/include/makeinclude/platform_g++_common.GNU
index efe1db31f5e..90089bfc1dc 100644
--- a/ACE/include/makeinclude/platform_g++_common.GNU
+++ b/ACE/include/makeinclude/platform_g++_common.GNU
@@ -50,22 +50,6 @@ endif
static_libs_only ?=
CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
-ifeq (Red Hat 4.1.1-51,$(findstring Red Hat 4.1.1-51,$(CXX_FULL_VERSION)))
- FC6 := $(shell sh -c 'test -s /etc/redhat-release && cat /etc/redhat-release | grep -c "Zod"')
- ifeq ($(FC6),1)
- gcc_template_instantiation_visibility ?= 1
- endif
-endif
-ifeq (Red Hat 4.1.1-52,$(findstring Red Hat 4.1.1-52,$(CXX_FULL_VERSION)))
- gcc_template_instantiation_visibility ?= 1
-endif
-ifeq (Red Hat 4.1.1-30,$(findstring Red Hat 4.1.1-30,$(CXX_FULL_VERSION)))
- gcc_template_instantiation_visibility ?= 1
-endif
-ifeq (Red Hat 4.1.2-12,$(findstring Red Hat 4.1.2-12,$(CXX_FULL_VERSION)))
- gcc_template_instantiation_visibility ?= 1
-endif
-
gcc_template_instantiation_visibility ?= 0
# Only modify LDFLAGS if DLD has been set.
diff --git a/ACE/include/makeinclude/platform_linux.GNU b/ACE/include/makeinclude/platform_linux.GNU
index faf6e6fd36f..fdaf63ce04e 100644
--- a/ACE/include/makeinclude/platform_linux.GNU
+++ b/ACE/include/makeinclude/platform_linux.GNU
@@ -9,11 +9,41 @@ include $(ACE_ROOT)/include/makeinclude/platform_linux_common.GNU
ifeq ($(insure),0)
CC ?= gcc
CXX ?= g++
+ CXX_FOR_VERSION_TEST ?= $(CXX)
+else
+ CXX_FOR_VERSION_TEST ?= g++
endif
# fix this
pipes ?= 1
+CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
+
+ifeq (Ubuntu, $(findstring Ubuntu,$(LSB_RELEASE_ID)))
+ ifeq (7.10, $(findstring 7.10,$(LSB_RELEASE_RELEASE)))
+ no_hidden_visibility ?= 1
+ endif
+ ifeq (7.04, $(findstring 7.04,$(LSB_RELEASE_RELEASE)))
+ no_hidden_visibility ?= 1
+ endif
+endif
+ifeq (Fedora, $(findstring Fedora,$(LSB_RELEASE_ID)))
+ ifeq (6, $(findstring 6,$(LSB_RELEASE_RELEASE)))
+ gcc_template_instantiation_visibility ?= 1
+ endif
+ ifeq (7, $(findstring 7,$(LSB_RELEASE_RELEASE)))
+ gcc_template_instantiation_visibility ?= 1
+ endif
+ ifeq (8, $(findstring 8,$(LSB_RELEASE_RELEASE)))
+ gcc_template_instantiation_visibility ?= 1
+ endif
+endif
+ifeq (RedHatEnterpriseServer, $(findstring RedHatEnterpriseServer,$(LSB_RELEASE_ID)))
+ ifeq (5, $(findstring 5,$(LSB_RELEASE_RELEASE)))
+ gcc_template_instantiation_visibility ?= 1
+ endif
+endif
+
CFLAGS += -W -Wall -Wpointer-arith
ifeq ($(threads),1)
CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
diff --git a/ACE/include/makeinclude/platform_linux_common.GNU b/ACE/include/makeinclude/platform_linux_common.GNU
index 71cb5b1e6f6..e5b988e6e5f 100644
--- a/ACE/include/makeinclude/platform_linux_common.GNU
+++ b/ACE/include/makeinclude/platform_linux_common.GNU
@@ -81,10 +81,13 @@ ifeq (NPTL, $(word 1,$(GNU_LIBPTHREAD_VERSION)))
endif
endif
nptl ?= 0
-ifeq ($(nptl),1)
- CPPFLAGS += -DACE_HAS_LINUX_NPTL
+ifeq ($(nptl),0)
+ CPPFLAGS += -DACE_LACKS_LINUX_NPTL
endif
+LSB_RELEASE_ID := $(shell lsb_release -i)
+LSB_RELEASE_RELEASE := $(shell lsb_release -r)
+
ssl ?= 0
ifeq ($(ssl),1)
# Some Linux OpenSSL installations compile in Kerberos support. Add
diff --git a/ACE/include/makeinclude/platform_linux_icc.GNU b/ACE/include/makeinclude/platform_linux_icc.GNU
index 3c5a3c99d42..e4bd1856f7e 100644
--- a/ACE/include/makeinclude/platform_linux_icc.GNU
+++ b/ACE/include/makeinclude/platform_linux_icc.GNU
@@ -34,6 +34,9 @@ ifeq (10.0,$(findstring 10.0,$(CXX_VERSION)))
CFLAGS += -wd1684
no_hidden_visibility ?= 1
endif
+ifeq (10.1,$(findstring 10.1,$(CXX_VERSION)))
+ CFLAGS += -wd1684
+endif
no_hidden_visibility ?= 1
diff --git a/ACE/include/makeinclude/platform_vxworks5.5.x.GNU b/ACE/include/makeinclude/platform_vxworks5.5.x.GNU
index ca4e0339cea..bffea24a846 100644
--- a/ACE/include/makeinclude/platform_vxworks5.5.x.GNU
+++ b/ACE/include/makeinclude/platform_vxworks5.5.x.GNU
@@ -93,6 +93,7 @@ endif
ifeq ($(findstring PPC, $(CPU)), PPC)
CCFLAGS += -mlongcall
+ CFLAGS += -mlongcall
endif
ifeq ($(shared_libs),1)
diff --git a/ACE/include/makeinclude/platform_vxworks6.2.GNU b/ACE/include/makeinclude/platform_vxworks6.2.GNU
index 51ed3ef2e4c..7cf1da393fb 100644
--- a/ACE/include/makeinclude/platform_vxworks6.2.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.2.GNU
@@ -85,7 +85,7 @@ endif
ifeq ($(rtp),0)
ifeq ($(findstring PPC, $(CPU)), PPC)
- CCFLAGS += -mlongcall
+ CPPFLAGS += -mlongcall
endif
PRJ_TYPE = vxApp
endif
diff --git a/ACE/include/makeinclude/platform_vxworks6.3.GNU b/ACE/include/makeinclude/platform_vxworks6.3.GNU
index 9782a1d50c2..f7330b7b0cb 100644
--- a/ACE/include/makeinclude/platform_vxworks6.3.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.3.GNU
@@ -107,8 +107,8 @@ ifeq ("$(TOOL_FAMILY)","gnu")
endif
ifeq ($(rtp),0)
- ifeq ($(findstring PPC, $(CPU)), PPC)
- CCFLAGS += -mlongcall
+ ifeq ($(findstring PPC,$(CPU)),PPC)
+ CPPFLAGS += -mlongcall
endif
PRJ_TYPE = vxApp
endif
@@ -216,11 +216,16 @@ endif
ifeq ($(SHARED_LIBS), 1)
ifeq ("$(TOOL_FAMILY)","gnu")
- PIC = -fpic
- SOFLAGS += -fpic -shared
+ ifeq ($(rtp),1)
+ PIC = -fpic
+ SOFLAGS += -fpic
+ endif
+ SOFLAGS += -shared
LDFLAGS += -non-static
else
- PIC = -Xpic
+ ifeq ($(rtp),1)
+ PIC = -Xpic
+ endif
SOFLAGS += -Xshared
LDFLAGS += -Xdynamic
endif
diff --git a/ACE/include/makeinclude/platform_vxworks6.6.GNU b/ACE/include/makeinclude/platform_vxworks6.6.GNU
new file mode 100644
index 00000000000..639f2d9c484
--- /dev/null
+++ b/ACE/include/makeinclude/platform_vxworks6.6.GNU
@@ -0,0 +1,8 @@
+# $Id$
+# VxWorks 6.6
+
+ifeq ($(VXWORKS_VERSION_FLAG),)
+ VXWORKS_VERSION_FLAG = -DACE_VXWORKS=0x660
+endif # VXWORKS_VERSION_FLAG
+
+include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.5.GNU
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
index 957344409cb..c169a790bc7 100644
--- a/ACE/include/makeinclude/wrapper_macros.GNU
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -91,6 +91,9 @@
# wfmo Build with wfmo support (Win32 only)
# winregistry Build with windows registry support (Win32 only)
# winnt Build WinNT-specific projects (Win32 only)
+# link_groups This indicates that statically linked executable library
+# names will be surrounded by -Wl,--start-group and
+# -Wl,--end-group for the GNU compiler only.
#
# Usually, users do not need to be concerned with make targets.
# Just enter "make" on the command line to build. A few notable
@@ -299,6 +302,7 @@ versioned_so ?= 1
use_dep_libs ?= 1
threads ?= 1
symlinks ?= relative
+link_groups ?= 0
SOVERSION ?=
SONAME ?=
diff --git a/ACE/m4/ace_defines.m4 b/ACE/m4/ace_defines.m4
new file mode 100644
index 00000000000..bb5ba514afc
--- /dev/null
+++ b/ACE/m4/ace_defines.m4
@@ -0,0 +1,48 @@
+# ACE_CHECK_DEFINE(DEFINE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_DEFINE],[
+AS_VAR_PUSHDEF([ac_var],[ace_cv_defined_$1])dnl
+AC_CACHE_CHECK([for $1], ac_var,
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
+#ifdef $1
+int ok;
+#else
+choke me
+#endif
+])],AS_VAR_SET(ac_var, yes),AS_VAR_SET(ac_var, no)))
+AS_IF([test AS_VAR_GET(ac_var) != "no"], [$2], [$3])dnl
+AS_VAR_POPDEF([ac_var])dnl
+])
+
+# ACE_CHECK_HAS_DEFINES(DEFINE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_DEFINES],
+[AC_FOREACH([ACE_Def], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_HAS_[]ACE_Def),
+ [Define to 1 if platform has ]ACE_Def[().])])dnl
+for ace_def in $1
+do
+ACE_CHECK_DEFINE($ace_def,
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_HAS_$ace_def])]) $2],
+ [$3],
+ [$4])dnl
+done
+])
+
+# ACE_CHECK_LACKS_DEFINES(DEFINE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_LACKS_DEFINES],
+[AC_FOREACH([ACE_Def], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_LACKS_[]ACE_Def),
+ [Define to 1 if platform lacks ]ACE_Def[().])])dnl
+for ace_def in $1
+do
+ACE_CHECK_DEFINE($ace_def,
+ [$2],
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_LACKS_$ace_def])]) $3],
+ [$4])dnl
+done
+])
diff --git a/ACE/m4/config_h.m4 b/ACE/m4/config_h.m4
index 3b94a0c518a..fdf10ac94e7 100644
--- a/ACE/m4/config_h.m4
+++ b/ACE/m4/config_h.m4
@@ -72,7 +72,6 @@ AH_TEMPLATE([ACE_HAS_TANDEM_SIGNALS],[])
AH_TEMPLATE([ACE_HAS_IRIX_53_SIGNALS],[])
AH_TEMPLATE([PTHREAD_STACK_MIN],[])
-AH_TEMPLATE([PTHREAD_STACK_MAX],[])
dnl ///////////////////// OSSAMA'S NEW STUFF ////////////////// */
dnl THIS STUFF WILL REPLACE THE ABOVE OLDER STUFF AND/OR WILL BE MERGED INTO IT
@@ -91,9 +90,6 @@ dnl /* results from checks for system services */
dnl AIX specific configuration parameters
AH_TEMPLATE([AIX],[Configure for use on AIX])
-dnl DG/UX specific configuration parameters
-AH_TEMPLATE([ACE_DGUX],[])
-
dnl FreeBSD specific configuration parameters
dnl Nothing yet
@@ -116,10 +112,6 @@ dnl Nothing yet */
dnl LynxOS specific configuration parameters
AH_TEMPLATE([__NO_INCLUDE_WARN__],[])
-dnl M88K specific configuration parameters
-AH_TEMPLATE([m88k],[])
-AH_TEMPLATE([__m88k__],[])
-
dnl MVS specific configuration parameters
dnl Nothing yet
@@ -130,11 +122,6 @@ dnl OSF/1 and Digital Unix specific configuration parameters
AH_TEMPLATE([DEC_CXX],[])
AH_TEMPLATE([DIGITAL_UNIX],[Configure for use on Digital Unix])
-dnl pSOS specific configuration parameters
-AH_TEMPLATE([ACE_PSOS],[Configure for use on pSoS])
-AH_TEMPLATE([ACE_PSOSIM],[])
-AH_TEMPLATE([ACE_PSOSTBD],[])
-
dnl SCO specific configuration parameters
AH_TEMPLATE([SCO],[])
@@ -273,9 +260,6 @@ AH_TEMPLATE([ACE_HAS_ALLOCA],[Compiler/platform supports alloca().])
AH_TEMPLATE([ACE_HAS_ALLOCA_H],[Compiler/platform has <alloca.h>])
-AH_TEMPLATE([ACE_HAS_ALPHA_TIMER],
-[CPU is an Alpha, with the rpcc instruction to read the tick timer.])
-
AH_TEMPLATE([ACE_HAS_AUTOMATIC_INIT_FINI],
[Compiler/platform correctly calls init()/fini() for shared libraries.])
@@ -498,8 +482,6 @@ AH_TEMPLATE([ACE_HAS_OPTIMIZED_MESSAGE_QUEUE],
AH_TEMPLATE([ACE_HAS_OSF_TIMOD_H],
[Platform supports the OSF TLI timod STREAMS module])
-AH_TEMPLATE([ACE_HAS_PENTIUM],[Platform is an Intel Pentium microprocessor.])
-
AH_TEMPLATE([ACE_HAS_POLL],[Platform contains <poll.h>])
AH_TEMPLATE([ACE_HAS_POSITION_INDEPENDENT_POINTERS],
@@ -532,9 +514,6 @@ AH_TEMPLATE([ACE_HAS_PROC_FS],
[Platform supports the /proc file system and defines tid_t
in <sys/procfs.h>])
-AH_TEMPLATE([ACE_HAS_POWERPC_TIMER],
-[Platform supports PowerPC time-base register.])
-
AH_TEMPLATE([ACE_HAS_PRUSAGE_T],[Platform supports the prusage_t struct])
AH_TEMPLATE([ACE_HAS_PTHREADS_UNIX98_EXT],
@@ -1029,19 +1008,9 @@ AH_TEMPLATE([ACE_TEMPLATES_REQUIRE_SOURCE],
[Compiler's template mechanim must see source code (i.e., .cpp
files). This is used for GNU G++.])
-AH_TEMPLATE([ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION],
-[Compiler's template instantiation mechanism supports the use of
- explicit C++ specializations for all used templates. This is also
- used for GNU G++ if you don't use the "repo" patches.])
-
AH_TEMPLATE([ACE_HAS_ICMP_SUPPORT],
[Defined to 1 if platform supports ICMP over raw sockets])
-AH_TEMPLATE([ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA],
-[Compiler's template instantiation mechanism supports the use of
- "#pragma instantiate". Edison Design Group compilers, e.g., SGI
- C++ and Green Hills 1.8.8 and later, support this.])
-
AH_TEMPLATE([ACE_NEEDS_FUNC_DEFINITIONS],
[Compiler requires a definition for a "hidden" function, e.g., a
private, unimplemented copy constructor or assignment operator.
diff --git a/ACE/m4/platform.m4 b/ACE/m4/platform.m4
index fd510767eae..cdab216495d 100644
--- a/ACE/m4/platform.m4
+++ b/ACE/m4/platform.m4
@@ -92,22 +92,6 @@ dnl */
*cray-unicos*)
ACE_CPPFLAGS="$ACE_CPPFLAGS -D_UNICOS"
;;
- *dgux4.11*)
- AC_DEFINE([ACE_DGUX])
- AC_DEFINE([IP_ADD_MEMBERSHIP], [0x13])
- AC_DEFINE([IP_DROP_MEMBERSHIP], [0x14])
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_SOURCE -D_DGUX_SOURCE"
- ;;
- *dgux4*)
- AC_DEFINE([ACE_DGUX])
- AC_DEFINE([IP_ADD_MEMBERSHIP], [0x13])
- AC_DEFINE([IP_DROP_MEMBERSHIP], [0x14])
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX4A_DRAFT10_SOURCE -D_POSIX4_DRAFT_SOURCE"
- ;;
- *fsu*)
-dnl FIXME: "FSU" isn't a platform! We need to move this somewhere.
- AC_DEFINE([PTHREAD_STACK_MIN], [(1024*10)])
- ;;
*hpux9*)
AC_DEFINE([HPUX])
;;
@@ -169,8 +153,8 @@ dnl FIXME: "FSU" isn't a platform! We need to move this somewhere.
AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
dnl Does this box have NPTL?
NPTL=`getconf GNU_LIBPTHREAD_VERSION | $AWK '{print [$][1]}' -`
- if test "$NPTL" = NPTL; then
- ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_HAS_LINUX_NPTL"
+ if test "$NPTL" != NPTL; then
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_LACKS_LINUX_NPTL"
fi
;;
*lynxos*)
@@ -182,12 +166,6 @@ dnl FIXME: "FSU" isn't a platform! We need to move this somewhere.
AC_DEFINE([ACE_HAS_LYNXOS_SIGNALS])
AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
;;
- *m88k*)
- AC_DEFINE([m88k])
- AC_DEFINE([__m88k__])
- AC_DEFINE([IP_ADD_MEMBERSHIP], [0x13])
- AC_DEFINE([IP_DROP_MEMBERSHIP], [0x14])
- ;;
*mvs*)
ACE_CPPFLAGS="$ACE_CPPFLAGS -D_ALL_SOURCE"
;;
@@ -232,21 +210,6 @@ dnl Check for _POSIX_C_SOURCE macro
AC_DEFINE([ACE_NEEDS_HUGE_THREAD_STACKSIZE], [(1024 * 1024)])
AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
;;
- *psos*)
- AC_DEFINE([ACE_PSOS])
- AC_DEFINE([ACE_PSOSIM])
- AC_DEFINE([ACE_PSOSTBD])
- dnl need ACE_HAS_TSS_EMULATION for ACE_DEFAULT_THREAD_KEYS!
- AC_EGREP_CPP([ACE_TSS_EMULATION],
- [
-#if defined (ACE_HAS_TSS_EMULATION)
- ACE_TSS_EMULATION
-#endif
- ], [AC_DEFINE([ACE_DEFAULT_THREAD_KEYS], [256])],[])
- AC_DEFINE([ACE_MAIN], [extern "C" void root])
- AC_DEFINE([ACE_MALLOC_ALIGN], [8])
- AC_DEFINE([ACE_USE_RCSID], [0])
- ;;
*sco4.2*)
AC_DEFINE([SCO])
AC_DEFINE([ACE_DEFAULT_CLOSE_ALL_HANDLES], [0])
@@ -350,7 +313,7 @@ dnl AC_DEFINE(ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL)
esac
ACE_FUNC_IOCTL_ARGTYPES
-
+ACE_CHECK_HAS_NONCONST_FD_ISSET
ACE_CHECK_FORMAT_SPECIFIERS
ACE_CHECK_LACKS_PERFECT_MULTICAST_FILTERING
@@ -375,9 +338,9 @@ AH_TEMPLATE([ACE_SIZE_T_FORMAT_SPECIFIER],
AH_TEMPLATE([ACE_SSIZE_T_FORMAT_SPECIFIER],
[Define to the *printf format specifier (e.g. "%d") for ssize_t])dnl
AH_TEMPLATE([ACE_INT64_FORMAT_SPECIFIER],
-[Define to the *printf format specifier (e.g. "%lld") for the 64 bit signed integer type])dnl
+[Define to the *printf format specifier (e.g. "%lld") for ACE_INT64])dnl
AH_TEMPLATE([ACE_UINT64_FORMAT_SPECIFIER],
-[Define to the *printf format specifier (e.g. "%llu") for the 64 bit signed integer type])dnl
+[Define to the *printf format specifier (e.g. "%llu") for ACE_UINT64])dnl
case "$host_os" in
darwin*)
@@ -487,3 +450,24 @@ if test "$ace_cv_var_timezone" = yes; then
[Define to 1 if platform has global timezone variable])
fi
])
+
+
+# ACE_HAS_NONCONST_FD_ISSET
+#
+# Checks if system has a nonconst FD_ISSET macro.
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_NONCONST_FD_ISSET],
+[dnl
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([#include <sys/time.h>],
+ [
+ //const fd_set* temp = new fd_set();
+ //FD_ISSET(0, const_cast< fd_set* >( temp ) );
+ const fd_set* temp = new fd_set();
+ FD_ISSET(0, temp );
+ ])
+ ],[],[AC_DEFINE([ACE_HAS_NONCONST_FD_ISSET], 1,
+ [Define to 1 if system has nonconst FD_ISSET() macro.])]
+ )
+])
diff --git a/ACE/netsvcs/lib/Name_Handler.cpp b/ACE/netsvcs/lib/Name_Handler.cpp
index 8be8ed89a79..087d63d7ac0 100644
--- a/ACE/netsvcs/lib/Name_Handler.cpp
+++ b/ACE/netsvcs/lib/Name_Handler.cpp
@@ -14,11 +14,6 @@ ACE_RCSID(lib,
Name_Handler,
"$Id$")
-#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX> *
- ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX>::singleton_;
-#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
-
// Simple macro that does bitwise AND -- useful in table lookup
#define ACE_TABLE_MAP(INDEX, MASK) (INDEX & MASK)
@@ -34,21 +29,17 @@ ACE_Name_Acceptor::parse_args (int argc, ACE_TCHAR *argv[])
ACE_LOG_MSG->open (ACE_TEXT ("Name Service"));
- ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("p:"), 0);
+ this->naming_context()->name_options()->parse_args( argc, argv );
+ service_port = this->naming_context()->name_options()->nameserver_port();
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- service_port = ACE_OS::atoi (get_opt.opt_arg ());
- break;
- default:
+ // dont allow to connect to another name serever
+ if(this->naming_context()->name_options()->context() == ACE_Naming_Context::NET_LOCAL)
+ this->naming_context()->name_options()->nameserver_host(ACE_TEXT ("localhost"));
+
+ if (this->naming_context()->open( this->naming_context()->name_options()->context() ) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n:\n[-p server-port]\n")),
+ ACE_TEXT ("%n:\n open naming context failed.\n")),
-1);
- }
- }
this->service_addr_.set (service_port);
return 0;
@@ -61,7 +52,11 @@ ACE_Name_Acceptor::init (int argc, ACE_TCHAR *argv[])
// Use the options hook to parse the command line arguments and set
// options.
- this->parse_args (argc, argv);
+ if( this->parse_args (argc, argv) == -1 )
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Name_Acceptor::parse_args failed")),
+ -1);
// Set the acceptor endpoint into listen mode (use the Singleton
// global Reactor...).
@@ -147,7 +142,7 @@ ACE_Name_Handler::ACE_Name_Handler (ACE_Thread_Manager *tm)
// ACE_Name_Acceptor).
/* VIRTUAL */ int
-ACE_Name_Handler::open (void *)
+ACE_Name_Handler::open (void * v)
{
ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::open"));
@@ -157,6 +152,10 @@ ACE_Name_Handler::open (void *)
ACE_TEXT ("%p\n"),
ACE_TEXT ("open")),
-1);
+
+ ACE_Name_Acceptor* acceptor_ = static_cast<ACE_Name_Acceptor*>(v);
+ naming_context_ = acceptor_->naming_context();
+
return 0;
}
@@ -374,7 +373,7 @@ ACE_Name_Handler::shared_bind (int rebind)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("request for BIND \n")));
#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->bind (a_name,
+ result = this->naming_context ()->bind (a_name,
a_value,
this->name_request_.type ());
}
@@ -384,7 +383,7 @@ ACE_Name_Handler::shared_bind (int rebind)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("request for REBIND \n")));
#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->rebind (a_name,
+ result = this->naming_context ()->rebind (a_name,
a_value,
this->name_request_.type ());
if (result == 1)
@@ -411,7 +410,7 @@ ACE_Name_Handler::resolve (void)
ACE_NS_WString avalue;
char *atype;
- if (NAMING_CONTEXT::instance ()->resolve (a_name, avalue, atype) == 0)
+ if (this->naming_context ()->resolve (a_name, avalue, atype) == 0)
{
ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> avalue_urep (avalue.rep ());
ACE_Name_Request nrq (ACE_Name_Request::RESOLVE,
@@ -439,7 +438,7 @@ ACE_Name_Handler::unbind (void)
ACE_NS_WString a_name (this->name_request_.name (),
this->name_request_.name_len () / sizeof (ACE_WCHAR_T));
- if (NAMING_CONTEXT::instance ()->unbind (a_name) == 0)
+ if (this->naming_context ()->unbind (a_name) == 0)
return this->send_reply (0);
else
return this->send_reply (-1);
@@ -497,7 +496,7 @@ ACE_Name_Handler::lists (void)
ACE_DEBUG ((LM_DEBUG, list_table_[index].description_));
// Call the appropriate method
- if ((NAMING_CONTEXT::instance ()->*list_table_[index].operation_) (set, pattern) != 0)
+ if ((this->naming_context ()->*list_table_[index].operation_) (set, pattern) != 0)
{
// None found so send blank request back
ACE_Name_Request end_rq (ACE_Name_Request::MAX_ENUM, 0, 0, 0, 0, 0, 0);
@@ -554,7 +553,7 @@ ACE_Name_Handler::lists_entries (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("request for LIST_NAME_ENTRIES \n")));
#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
+ result = this->naming_context ()->
ACE_Naming_Context::list_name_entries (set, pattern);
}
else if (msg_type == ACE_Name_Request::LIST_VALUE_ENTRIES)
@@ -563,7 +562,7 @@ ACE_Name_Handler::lists_entries (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("request for LIST_VALUE_ENTRIES \n")));
#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
+ result = this->naming_context ()->
ACE_Naming_Context::list_value_entries (set, pattern);
}
else if (msg_type == ACE_Name_Request::LIST_TYPE_ENTRIES)
@@ -572,7 +571,7 @@ ACE_Name_Handler::lists_entries (void)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("request for LIST_TYPE_ENTRIES \n")));
#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
+ result = this->naming_context ()->
ACE_Naming_Context::list_type_entries (set, pattern);
}
else
@@ -620,6 +619,18 @@ ACE_Name_Handler::lists_entries (void)
return 0;
}
+ACE_Naming_Context *
+ACE_Name_Handler::naming_context (void)
+{
+ return naming_context_;
+}
+
+ACE_Naming_Context *
+ACE_Name_Acceptor::naming_context (void)
+{
+ return &naming_context_;
+}
+
ACE_Name_Handler::~ACE_Name_Handler (void)
{
ACE_TRACE (ACE_TEXT ("ACE_Name_Handler::~ACE_Name_Handler"));
diff --git a/ACE/netsvcs/lib/Name_Handler.h b/ACE/netsvcs/lib/Name_Handler.h
index 40c7e893499..d41751145fe 100644
--- a/ACE/netsvcs/lib/Name_Handler.h
+++ b/ACE/netsvcs/lib/Name_Handler.h
@@ -28,24 +28,8 @@
#include "ace/Naming_Context.h"
#include "ace/Name_Request_Reply.h"
#include "ace/Null_Mutex.h"
-#include "ace/Singleton.h"
#include "ace/svc_export.h"
-/**
- * @class Naming_Context
- *
- * @brief This helper class adds the correct default constructor to the
- * <ACE_Naming_Context> class so that we can use it in
- * <ACE_Singleton>.
- */
-class Naming_Context : public ACE_Naming_Context
-{
-public:
- Naming_Context (void)
- : ACE_Naming_Context (ACE_Naming_Context::NET_LOCAL) {}
-};
-
-typedef ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX> NAMING_CONTEXT;
#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
template class ACE_Svc_Export ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
@@ -159,6 +143,11 @@ private:
/// Address of client we are connected with.
ACE_INET_Addr addr_;
+ /// Naming Context
+ ACE_Naming_Context *naming_context_;
+
+ ACE_Naming_Context *naming_context (void);
+
/// Handle binds.
int bind (void);
@@ -206,11 +195,18 @@ public:
/// Parse svc.conf arguments.
int parse_args (int argc, ACE_TCHAR *argv[]);
+ /// Naming context for acceptor /for the listening port/
+ ACE_Naming_Context *naming_context (void);
+
private:
/// The scheduling strategy is designed for Reactive services.
ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler> scheduling_strategy_;
+
+ /// The Naming Context
+ ACE_Naming_Context naming_context_;
};
ACE_SVC_FACTORY_DECLARE (ACE_Name_Acceptor)
+
#endif /* ACE_NAME_HANDLER_H */
diff --git a/ACE/tests/CDR_Test.cpp b/ACE/tests/CDR_Test.cpp
index b4f2c206f72..49bfde79de3 100644
--- a/ACE/tests/CDR_Test.cpp
+++ b/ACE/tests/CDR_Test.cpp
@@ -44,9 +44,13 @@ struct CDR_Test_Types
const ACE_CDR::Char *str;
const ACE_CDR::WChar *wstr;
ACE_CDR::Double d;
+ ACE_CDR::Short reps;
+ ACE_CDR::Long repl;
int test_put (ACE_OutputCDR& cdr);
int test_get (ACE_InputCDR& cdr) const;
+ int test_put_placeholder (ACE_OutputCDR& cdr);
+ int test_get_placeholder (ACE_InputCDR& cdr) const;
enum
{
@@ -62,7 +66,9 @@ CDR_Test_Types::CDR_Test_Types (void)
l (4),
str ("abc"),
wstr (0),
- d (8)
+ d (8),
+ reps (-123),
+ repl (-65800L)
{
for (int i = 0;
i < CDR_Test_Types::ARRAY_SIZE;
@@ -440,6 +446,72 @@ CDR_Test_Types::test_get (ACE_InputCDR &cdr) const
}
int
+CDR_Test_Types::test_put_placeholder (ACE_OutputCDR &cdr)
+{
+ // Write a placeholder then a bunch of other stuff, then replace.
+ char *pos = cdr.write_long_placeholder ();
+ if (test_put (cdr) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("test_put (long placeholder) failed\n")),
+ 1);
+ if (!cdr.replace (this->repl, pos))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("replace(long) failed\n")),
+ 1);
+
+ pos = cdr.write_short_placeholder ();
+ if (test_put (cdr) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("test_put (short placeholder) failed\n")),
+ 1);
+ if (!cdr.replace (this->reps, pos))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("replace(short) failed\n")),
+ 1);
+
+ return 0;
+}
+
+int
+CDR_Test_Types::test_get_placeholder (ACE_InputCDR &cdr) const
+{
+ ACE_CDR::Short xs;
+ ACE_CDR::Long xl;
+
+ if (cdr.read_long (xl) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("read_long failed\n")),
+ 1);
+ if (xl != this->repl)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("replaced long differs\n")),
+ 1);
+
+ // The bunch of stuff written after the placeholder by test_put_placeholder
+ // should still be valid; check that it is.
+ if (test_get (cdr) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("test_get (long) failed\n")),
+ 1);
+
+ if (cdr.read_short (xs) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("read_short failed\n")), 1);
+ if (xs != this->reps)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("replaced short differs\n")),
+ 1);
+
+ if (test_get (cdr) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("test_get (short) failed\n")),
+ 1);
+
+ return 0;
+}
+
+
+int
run_main (int argc, ACE_TCHAR *argv[])
{
ACE_START_TEST (ACE_TEXT ("CDR_Test"));
@@ -597,7 +669,33 @@ run_main (int argc, ACE_TCHAR *argv[])
return 1;
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Consolidation - no errors\n\n")));
+ ACE_TEXT ("Consolidation - no errors\n\n")
+ ACE_TEXT ("Testing placeholder/replace\n\n")));
+
+ output.reset();
+ if (test_types.test_put_placeholder (output) != 0)
+ return 1;
+
+ input = ACE_InputCDR(output);
+ if (debug > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Output CDR: \n")));
+ ACE_HEX_DUMP ((LM_DEBUG,
+ input.rd_ptr(),
+ 64));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Input CDR: \n")));
+ ACE_HEX_DUMP ((LM_DEBUG,
+ input.rd_ptr(),
+ 64));
+ }
+
+ if (test_types.test_get_placeholder (input) != 0)
+ return 1;
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Placeholder/Replace - no errors\n\n")));
ACE_END_TEST;
return 0;
diff --git a/ACE/tests/Conn_Test.cpp b/ACE/tests/Conn_Test.cpp
index fc6b213acde..6f174583ea9 100644
--- a/ACE/tests/Conn_Test.cpp
+++ b/ACE/tests/Conn_Test.cpp
@@ -617,7 +617,7 @@ spawn_threads (ACCEPTOR *acceptor,
{
int status = 0;
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
// Assign thread (VxWorks task) names to test that feature.
ACE_hthread_t *server_name = 0;
ACE_NEW_RETURN (server_name,
@@ -660,7 +660,7 @@ spawn_threads (ACCEPTOR *acceptor,
, ACE_DEFAULT_THREAD_PRIORITY
, -1
, 0
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
, server_name
#if 0 /* Don't support setting of stack, because it doesn't seem to work. */
, (void **) stack
@@ -680,7 +680,7 @@ spawn_threads (ACCEPTOR *acceptor,
(void *) server_addr,
THR_NEW_LWP,
0
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
, &client_name
#endif /* ACE_HAS_VXTHREADS */
) == -1)
@@ -705,7 +705,7 @@ spawn_threads (ACCEPTOR *acceptor,
status = -1;
}
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
for (i = 0; i < n_servers; ++i)
{
delete [] server_name[i];
diff --git a/ACE/tests/Max_Default_Port_Test.cpp b/ACE/tests/Max_Default_Port_Test.cpp
index 772f6e8ae21..8834a8b6254 100644
--- a/ACE/tests/Max_Default_Port_Test.cpp
+++ b/ACE/tests/Max_Default_Port_Test.cpp
@@ -17,8 +17,8 @@
// to zero on that platform.
//
// In this test, the event handler is started at the port value
-// USHRT_MAX and decremented for 300 port values and tested if the
-// highest port number used agrees with ACE_MAX_DEFAULT_PORT value.
+// USHRT_MAX and decremented for 'ports_to_test' port values and tested
+// if the highest port number used agrees with ACE_MAX_DEFAULT_PORT value.
//
//
// = AUTHOR
@@ -179,8 +179,16 @@ run_main (int argc, ACE_TCHAR *argv[])
u_short max_listened_port = 0;
+#if defined (__Lynx__)
+ // LynxOS can handle only 80 test iterations.
+ // This needs to be investigated further -- olli 12.11.2007
+ const u_short ports_to_test = 80;
+#else
+ const u_short ports_to_test = 300;
+#endif
+
//Ports beyond 65279 were said to bad on NT sp 3.
- for (u_short idx = USHRT_MAX; idx != USHRT_MAX - 300; --idx)
+ for (u_short idx = USHRT_MAX; idx != USHRT_MAX - ports_to_test; --idx)
{
#if defined (ACE_VXWORKS)
if (retry_port_>0)
diff --git a/ACE/tests/Process_Manager_Test.cpp b/ACE/tests/Process_Manager_Test.cpp
index 22acac945de..e433098c906 100644
--- a/ACE/tests/Process_Manager_Test.cpp
+++ b/ACE/tests/Process_Manager_Test.cpp
@@ -26,9 +26,13 @@
// ============================================================================
#include "test_config.h"
+#include "ace/SString.h"
+#include "ace/Atomic_Op.h"
+#include "ace/Task.h"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_string.h"
#include "ace/Process_Manager.h"
+#include "ace/Synch_Traits.h"
#include "ace/Get_Opt.h"
#include "ace/Thread.h"
#include "ace/Reactor.h"
@@ -103,8 +107,72 @@ const ACE_TCHAR *cmdline_format = ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR ACE
return result;
}
+ACE_CString order;
+
+ACE_Atomic_Op<ACE_SYNCH_MUTEX, int> running_tasks = 0;
+
+class Process_Task : public ACE_Task<ACE_SYNCH>
+{
+public:
+ Process_Task (const ACE_TCHAR *argv0,
+ ACE_Process_Manager &mgr,
+ int sleep_time)
+ : argv0_ (argv0),
+ mgr_ (mgr),
+ sleep_time_ (sleep_time) { }
+
+ int open (void*)
+ {
+ char tmp[10];
+ order += ACE_OS::itoa (sleep_time_, tmp, 10);
+ running_tasks++;
+ activate ();
+ return 0;
+ }
+
+ int svc (void)
+ {
+ int result = 0;
+ ACE_exitcode exitcode;
+ pid_t my_child = spawn_child (argv0_,
+ mgr_,
+ sleep_time_);
+ result = mgr_.wait (my_child,
+ &exitcode);
+ if (result != my_child)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P) Error: expected to reap child (%d); got %d\n"),
+ my_child,
+ result));
+ if (result == ACE_INVALID_PID)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P) %p\n"), ACE_TEXT ("error")));
+ //test_status = 1;
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) reaped child, pid %d: %d\n"),
+ my_child,
+ exitcode));
+ char tmp[10];
+ order += ACE_OS::itoa (sleep_time_, tmp, 10);
+ return 0;
+ }
+
+ int close (u_long)
+ {
+ running_tasks--;
+ return 0;
+ }
+
+private:
+ const ACE_TCHAR *argv0_;
+ ACE_Process_Manager &mgr_;
+ int sleep_time_;
+};
+
static int
-command_line_test ()
+command_line_test (void)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Testing for last character of command line\n")));
@@ -351,6 +419,31 @@ run_main (int argc, ACE_TCHAR *argv[])
}
}
+ Process_Task task1 (argv[0], mgr, 3);
+ Process_Task task2 (argv[0], mgr, 2);
+ Process_Task task3 (argv[0], mgr, 1);
+ task1.open (0);
+ task2.open (0);
+ task3.open (0);
+
+ while (running_tasks!=0)
+ {
+ ACE_OS::sleep (1);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P) still running tasks\n")));
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P) result: '%s'\n"),
+ order.c_str ()));
+
+ if (order != "321123")
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P) wrong order of spawns ('%s', should be '321123')\n"),
+ order.c_str ()));
+ test_status = 1;
+ }
+
#if !defined (ACE_OPENVMS)
// --------------------------------------------------
// Finally, try the reactor stuff...
@@ -379,8 +472,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P) %d processes left in manager\n"),
nr_procs));
-
-#endif
+#endif /* !defined (ACE_OPENVMS) */
ACE_END_TEST;
return test_status;
}
diff --git a/ACE/tests/Reactor_Notify_Test.cpp b/ACE/tests/Reactor_Notify_Test.cpp
index 8c1af55294d..15adcd8eab6 100644
--- a/ACE/tests/Reactor_Notify_Test.cpp
+++ b/ACE/tests/Reactor_Notify_Test.cpp
@@ -38,6 +38,82 @@ ACE_RCSID(tests, Reactor_Notify_Test, "$Id$")
static const time_t LONG_TIMEOUT = 10;
static const time_t SHORT_TIMEOUT = 2;
+// A class to run a quiet event loop in one thread, and a plain notify()
+// from the main thread to make sure a simple notify will wake up a quiet
+// reactor.
+class Quiet_Notify_Tester : public ACE_Task<ACE_NULL_SYNCH>
+{
+public:
+ Quiet_Notify_Tester (void) : result_ (0) {}
+ ~Quiet_Notify_Tester (void) { this->wait (); }
+
+ //FUZZ: disable check_for_lack_ACE_OS
+ virtual int open (void * = 0);
+ // Start the reactor event thread.
+
+ // Run the reactor event loop.
+ virtual int svc (void);
+
+ // Return the test result, 0 ok, -1 fail
+ int result (void) const { return this->result_; }
+
+private:
+ ACE_Reactor r_;
+ int result_;
+};
+
+int
+Quiet_Notify_Tester::open (void *)
+{
+ this->reactor (&this->r_);
+ return this->activate ();
+}
+
+int
+Quiet_Notify_Tester::svc (void)
+{
+ // Count on the main thread doing a notify in less than LONG_TIMEOUT
+ // seconds. If we don't get it, report a failure.
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Starting quiet event loop\n")));
+ this->r_.owner (ACE_Thread::self ());
+ ACE_Time_Value tmo (LONG_TIMEOUT);
+ int status = this->r_.handle_events (&tmo);
+ time_t remain = tmo.sec ();
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) event loop status %d, %: secs remain\n"),
+ status, remain));
+ if (remain == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) Notify did not wake quiet event loop\n")));
+ this->result_ = -1;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Notify woke quiet event loop\n")));
+ }
+ return 0;
+}
+
+static int
+run_quiet_notify_test (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "(%t) Starting quiet notify test\n"));
+ Quiet_Notify_Tester t;
+ if (t.open () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("Quiet notify activate")),
+ -1);
+ // Now sleep a bit, then do a simple, reactor wake-up
+ ACE_OS::sleep (SHORT_TIMEOUT);
+ t.reactor ()->notify ();
+ t.wait ();
+ ACE_DEBUG ((LM_DEBUG, "(%t) Quiet notify test done\n"));
+ return t.result ();
+}
+
+
class Supplier_Task : public ACE_Task<ACE_MT_SYNCH>
{
public:
@@ -458,14 +534,22 @@ run_main (int, ACE_TCHAR *[])
int test_result = 0; // Innocent until proven guilty
- test_result = run_notify_purge_test ();
- if (test_result == 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("purge_pending_notifications test OK\n")));
+ if (0 == run_notify_purge_test ())
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("purge_pending_notifications test OK\n")));
+ }
else
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("purge_pending_notifications test FAIL\n")));
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("purge_pending_notifications test FAIL\n")));
+ test_result = 1;
+ }
#if defined (ACE_HAS_THREADS)
+ if (0 != run_quiet_notify_test ())
+ test_result = 1;
+
ACE_Time_Value timeout (SHORT_TIMEOUT);
ACE_DEBUG ((LM_DEBUG,
@@ -495,4 +579,3 @@ run_main (int, ACE_TCHAR *[])
ACE_END_TEST;
return test_result;
}
-
diff --git a/ACE/tests/Refcounted_Auto_Ptr_Test.cpp b/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
index 8331908d150..f62a3b1cb24 100644
--- a/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
+++ b/ACE/tests/Refcounted_Auto_Ptr_Test.cpp
@@ -346,7 +346,7 @@ static int test_reset_release (void)
int errors = 0;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test copy constructor\n")));
- Printer_Ptr bar = new Printer ("1");
+ Printer_Ptr bar(new Printer ("1"));
Printer_Ptr fum = bar;
if (!expect (ACE_TEXT ("bar"), bar, false, 1, 1))
++errors;
@@ -361,7 +361,7 @@ static int test_reset_release (void)
++errors;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test release\n")));
- Printer_Ptr fie = new Printer ("3");
+ Printer_Ptr fie(new Printer ("3"));
Printer_Ptr foe = fie;
foe.release();
if (!expect (ACE_TEXT ("fie"), fie, false, 3, 0))
@@ -370,7 +370,7 @@ static int test_reset_release (void)
++errors;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test assignment to null\n")));
- Printer_Ptr fee = new Printer ("4");
+ Printer_Ptr fee(new Printer ("4"));
Printer_Ptr eraser;
fee = eraser;
if (!expect (ACE_TEXT ("fee"), fee, true, 0, 0))
@@ -379,8 +379,8 @@ static int test_reset_release (void)
++errors;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test assignment to value\n")));
- Printer_Ptr fix = new Printer ("5");
- Printer_Ptr fax = new Printer ("6");
+ Printer_Ptr fix(new Printer ("5"));
+ Printer_Ptr fax(new Printer ("6"));
fix = fax;
if (!expect (ACE_TEXT ("fix"), fix, false, 6, 1))
++errors;
@@ -388,7 +388,7 @@ static int test_reset_release (void)
++errors;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test reset to null\n")));
- Printer_Ptr fey = new Printer ("7");
+ Printer_Ptr fey(new Printer ("7"));
Printer_Ptr flo = fey;
flo.reset ();
if (!expect (ACE_TEXT ("fey"), fey, false, 7, 0))
@@ -399,6 +399,55 @@ static int test_reset_release (void)
return errors;
}
+static int test_operator(void)
+{
+ int errors = 0;
+
+ // test null
+ Printer_Ptr printer_null;
+ if (!printer_null)
+ {
+ }
+ else
+ {
+ ++errors;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("!printer_null should be false\n")));
+ }
+ if (printer_null)
+ {
+ ++errors;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("printer_null should be false\n")));
+ }
+ else
+ {
+ }
+
+ // test not null
+ Printer_Ptr printer_not_null(new Printer("check not null"));
+ if (!printer_not_null)
+ {
+ ++errors;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("!printer_not_null should be false\n")));
+ }
+ else
+ {
+ }
+ if (printer_not_null)
+ {
+ }
+ else
+ {
+ ++errors;
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("printer_not_null should be false\n")));
+ }
+
+ return errors;
+}
+
int
run_main (int, ACE_TCHAR *[])
{
@@ -493,6 +542,9 @@ run_main (int, ACE_TCHAR *[])
}
#endif /* ACE_HAS_THREADS */
+
+ test_errors += test_operator();
+
ACE_END_TEST;
return test_errors;
diff --git a/ACE/tests/TSS_Test.cpp b/ACE/tests/TSS_Test.cpp
index 58b942a5af7..8ee832ba9cd 100644
--- a/ACE/tests/TSS_Test.cpp
+++ b/ACE/tests/TSS_Test.cpp
@@ -72,15 +72,6 @@ static ACE_Thread_Mutex output_lock;
extern "C" void
cleanup (void *ptr)
{
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- // The intended use of this function doesn't apply with
- // Draft 4 threads. With Draft 4 threads, this function
- // is called implicitly by pthread_setspecific whenever an
- // old value is replaced. This function is intended to be
- // used with Draft 6 and later threads, where it is called
- // on thread termination with the thread-specific value.
- ACE_UNUSED_ARG (ptr);
-#else /* ! ACE_HAS_PTHREADS_DRAFT4 */
// Don't do this: ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) in cleanup, ptr = %x\n"), ptr));
// The Log_Msg buffer is a TSS object, too, and it may be gone!
// if you must say something here try:
@@ -89,7 +80,6 @@ cleanup (void *ptr)
// operator delete (ptr);
// is nonsense when applied to a void *! (even tho the compilers accept it????
delete static_cast <int *> (ptr);
-#endif /* ! ACE_HAS_PTHREADS_DRAFT4 */
}
// This worker function is the entry point for each thread.
@@ -134,10 +124,10 @@ worker (void *c)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) in worker at location 1, ")
ACE_TEXT ("key = %d, ip = %x\n"),
key, ip));
-
+
// Needed to work around (possibly broken?) strict aliasing warning in GCC.
void *v_ip (reinterpret_cast <void *> (ip));
-
+
if (ACE_Thread::setspecific (key, v_ip) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::setspecific")));
@@ -150,20 +140,14 @@ worker (void *c)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::setspecific")));
-#if ! defined (ACE_HAS_PTHREADS_DRAFT4)
// See comment in cleanup () above.
delete ip;
-#endif /* ! ACE_HAS_PTHREADS_DRAFT4 */
- // We don't do keyfree for ACE_HAS_PTHREADS_DRAFT4 (or 6) since it
- // is not supported there, and will generate an error anyway. Unless
- // ACE_HAS_TSS_EMULATION is turned on, then it should work.
-#if !(defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)) \
- || defined (ACE_HAS_TSS_EMULATION)
+#if defined (ACE_HAS_TSS_EMULATION)
if (ACE_Thread::keyfree (key) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::keyfree")));
-#endif /* !(PTHREADS_DRAFT4 or 6) || defined (ACE_HAS_TSS_EMULATION) */
+#endif /* ACE_HAS_TSS_EMULATION */
// Cause an error.
ACE_OS::read (ACE_INVALID_HANDLE, 0, 0);
@@ -219,11 +203,14 @@ worker (void *c)
ACE_TEXT ("key = %d, ip = %x\n"),
key, ip));
- if (ACE_Thread::setspecific (key, (void *) ip) == -1)
+ // Needed to work around (possibly broken?) strict aliasing warning in GCC.
+ void *v_ip2 (reinterpret_cast <void *> (ip));
+
+ if (ACE_Thread::setspecific (key, v_ip2) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::setspecific")));
- if (ACE_Thread::getspecific (key, (void **) &ip) == -1)
+ if (ACE_Thread::getspecific (key, &v_ip2) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::getspecific")));
@@ -231,21 +218,15 @@ worker (void *c)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::setspecific")));
-# if !defined (ACE_HAS_PTHREADS_DRAFT4)
// See comment in cleanup () above.
delete ip;
-# endif /* ! ACE_HAS_PTHREADS_DRAFT4 */
- // We don't do keyfree for ACE_HAS_PTHREADS_DRAFT4 (or 6) since it
- // is not supported there, and will generate an error anyway. Unless
// ACE_HAS_TSS_EMULATION is turned on, then it should work.
-# if !(defined (ACE_HAS_PTHREADS_DRAFT4) || \
- defined (ACE_HAS_PTHREADS_DRAFT6) ) \
- || defined (ACE_HAS_TSS_EMULATION)
+# if defined (ACE_HAS_TSS_EMULATION)
if (ACE_Thread::keyfree (key) == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%t) %p\n"),
ACE_TEXT ("ACE_Thread::keyfree")));
-# endif /* !(PTHREADS_DRAFT4 or 6) || defined (ACE_HAS_TSS_EMULATION) */
+# endif /* defined (ACE_HAS_TSS_EMULATION) */
#endif /* ACE_HAS_TSS_EMULATION */
}
return 0;
diff --git a/ACE/tests/Thread_Manager_Test.cpp b/ACE/tests/Thread_Manager_Test.cpp
index d775ce72194..b3dc548455b 100644
--- a/ACE/tests/Thread_Manager_Test.cpp
+++ b/ACE/tests/Thread_Manager_Test.cpp
@@ -89,7 +89,7 @@ handler (int /* signum */)
static void *
worker (int iterations)
{
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) %s: stack size is %u\n"),
ACE_OS::thr_self (),
ACE_OS::thr_min_stack ()));
@@ -283,7 +283,7 @@ run_main (int, ACE_TCHAR *[])
ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance ();
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
// Assign thread (VxWorks task) names to test that feature.
ACE_hthread_t *thread_name = 0;
ACE_NEW_RETURN (thread_name,
@@ -323,7 +323,7 @@ run_main (int, ACE_TCHAR *[])
THR_BOUND
, ACE_DEFAULT_THREAD_PRIORITY
, -1
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
, 0
, thread_name
, 0
@@ -442,7 +442,7 @@ run_main (int, ACE_TCHAR *[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) main thread finished\n")));
-#if defined (ACE_HAS_VXTHREADS)
+#if 0
for (i = 0; i < n_threads - 1; ++i)
{
delete [] thread_name[i];
diff --git a/ACE/tests/Vector_Test.cpp b/ACE/tests/Vector_Test.cpp
index 1d0933d73eb..3866094c62b 100644
--- a/ACE/tests/Vector_Test.cpp
+++ b/ACE/tests/Vector_Test.cpp
@@ -12,7 +12,8 @@
// This is a simple test of the ACE_Vector class and its iterators.
//
// = AUTHOR
-// Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com>
+// Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com> and
+// Karl-Heinz Wind <wind@itq.de>
//
// ============================================================================
@@ -37,6 +38,9 @@ const size_t TOP = 100;
const size_t LEFT = 10;
const size_t RESIZE = 20;
+const size_t FILLER1 = 1;
+const size_t FILLER2 = 2;
+
int run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Vector_Test"));
@@ -107,8 +111,8 @@ int run_main (int, ACE_TCHAR *[])
ACE_ASSERT (vector[i] == 0);
}
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("vector[%d]:%d\n"),
- i, vector[i]));
+ ACE_TEXT ("vector[%d]:%d\n"),
+ i, vector[i]));
}
vector.clear ();
@@ -117,6 +121,37 @@ int run_main (int, ACE_TCHAR *[])
ACE_TEXT ("Size: %d\n"),
vector.size ()));
+ // test resize (shrink and enlarge with buffer realloc)
+ VECTOR vector2;
+
+ // should be around 32
+ size_t boundary = vector2.capacity ();
+
+ // we fill everything up with 1
+ // 1, 1, 1, 1, 1, 1, 1, 1,
+ // 1, 1, 1, 1, 1, 1, 1, 1,
+ // 1, 1, 1, 1, 1, 1, 1, 1,
+ // 1, 1, 1, 1, 1, 1, 1, 1,
+ for (i = 0; i < boundary; ++i)
+ vector2.push_back (FILLER1);
+
+ // we throw almost everything away.
+ vector2.resize (1, 0);
+
+ // we fill up with another pattern
+ // 1, 2, 2, 2, 2, 2, 2, 2,
+ // 2, 2, 2, 2, 2, 2, 2, 2,
+ // 2, 2, 2, 2, 2, 2, 2, 2,
+ // 2, 2, 2, 2, 2, 2, 2, 2,
+ // 2,
+ for (i = 0; i < boundary; ++i)
+ vector2.push_back (FILLER2);
+
+ // now we check the result
+ ACE_ASSERT (vector2[0] == FILLER1);
+ for (i = 0; i < boundary; ++i)
+ ACE_ASSERT (vector2[i+1] == FILLER2);
+
VECTOR v1;
VECTOR v2;
v1.push_back (1);
@@ -141,3 +176,4 @@ int run_main (int, ACE_TCHAR *[])
return 0;
}
+
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index eef37e991d8..7a5c86217ad 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -138,7 +138,7 @@ Refcounted_Auto_Ptr_Test: !ACE_FOR_TAO
Reference_Counted_Event_Handler_Test
Reverse_Lock_Test
Sendfile_Test: !QNX !NO_NETWORK !VxWorks
-Signal_Test: !VxWorks64 !VxWorks65
+Signal_Test: !VxWorks64 !VxWorks65 !LynxOS
SOCK_Connector_Test: !NO_NETWORK
SOCK_Netlink_Test: !ACE_FOR_TAO
SOCK_Send_Recv_Test: !NO_NETWORK