summaryrefslogtreecommitdiff
path: root/ChangeLog-95
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog-95')
-rw-r--r--ChangeLog-954179
1 files changed, 4179 insertions, 0 deletions
diff --git a/ChangeLog-95 b/ChangeLog-95
new file mode 100644
index 00000000000..429e5681fdc
--- /dev/null
+++ b/ChangeLog-95
@@ -0,0 +1,4179 @@
+Sun Dec 31 01:02:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace/OS (mmap): Added a new parameter to the argument list for
+ mmap(). This parameter is an ACE_HANDLE * and is used in the
+ Win32 implementation, which requires CreateFileMapping to open a
+ new HANDLE. This handle is passed back to the caller, which is
+ then responsible for freeing it... I'll probably need to modify
+ the ACE_Mem_Map class to manage this new handle for the WIN32
+ version.
+
+ * ace: Updated all the SPIPE files in preparation to porting them
+ to Windows NT, where they will be implemented using Win32 Named
+ Pipes!
+
+ * ace/Typed_SV_Message: Fixed a mysterious braino where the method
+ definitions for Typed_SV_Message were actually within
+ Typed_SV_Message_Queue.cpp. I'm not sure why this happened, but
+ it's clearly been this way for eons... Also, changed the name
+ of the method "max" to "max_size" to avoid conflicts with macros
+ on Windows NT...
+
+ * ace: Added a new config symbol: ACE_HAS_SYSV_IPC. If this is
+ *not* set (e.g., Win32) then don't try to compile any of the
+ System V IPC mechanisms (e.g., shared memory, message queues,
+ semaphores).
+
+ * ace/Malloc: Reimplemented the Malloc-family to factor out common
+ code. Also added a new method called "trybind" which atomically
+ tries to bind a new void *pointer to a char *name. If there is
+ no name with the same value, the bind succeeds. Otherwise, the
+ bind "fails", but returns the existing pointer.
+
+ * ace/Map_Manager: Reimplemented the Map_Manager to factor out
+ common code. Also added a new method called "trybind" which
+ atomically tries to bind a new int_id to an ext_id. If there is
+ no ext_id with the same name, the bind succeeds. Otherwise, the
+ bind "fails", but returns the existing int_id.
+
+ * ace/Memory_Pool.cpp: Commented out all the diagnostic messages
+ in the various ACE_*_Memory_Pools. Now that we're actually
+ using this within ACE, they were distracting.
+
+ * ace/CORBA_Handler.cpp (ACE_ST_CORBA_Handler): Gave iterations_
+ an initial value of "5" for backwards compatibility. Thanks to
+ Irfan for doing this.
+
+ * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed some more braino in
+ the constructors of Map_Manager. During the recent changes I'd
+ forgotten to initialize the Map_Manager's instance variables to
+ 0. Thanks to Irfan for finding this out the hard way... ;-)
+
+ * ace/OS.i (gettimeofday): Added a WIN32 implementation of
+ gettimeofday. This is pretty nasty, but it should centralize
+ all of this processing in one place in ACE!
+
+Sat Dec 30 00:50:20 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace/Timer_Queue: Removed the current_time() method from the
+ Timer_Queue class. All uses will be replaced with calls to
+ ACE_OS::gettimeofday(). Not only does this factor out more
+ code, but it is also reentrant!
+
+ * ace/ACE.cpp (handle_timed_accept): Consolidated code so that
+ select() is always used, rather than poll().
+
+ * ace: Generalized the ACE file locking wrappers (both at the
+ Synch-level and the ACE_OS class level) to enable them to lock
+ arbitrary regions (aka "records") of a file. Before, they could
+ only lock the entire file (which remains the default behavior).
+ This new behavior works for both NT and UNIX.
+
+ * ace/Synch: Removed the definition and use of the
+ ACE_SYNCH_ERROR_RETURN macro from all the ACE Synch* methods.
+ This behavior has been integrated into the ACE_OS class instead
+ since it cleans up lots of code that would otherwise have been
+ hard to write.
+
+ * ace/INET_Addr.cpp (get_host_name): Fixed a bug that arose by
+ trying to use the reentrant version of gethostbyaddr all the
+ time. In order to fix this, I've added a new get_host_name()
+ method that allows the caller to supply a buffer for the
+ hostname.
+
+ * ace: Cleaned up all the POSIX_TIMER junk that permeated ACE.
+ Now all platforms will have the POSIX timer structures (e.g.,
+ timestruc_t and timespec), though only those that actually
+ support nano-second timing will be able to do anything useful
+ with this... As part of this cleanup, the poll, select, and
+ cond_timedwait method in ACE_OS now take ACE_Time_Value * rather
+ than int, timeval *, and timestruc_t, respectively. This
+ *greatly* cleans up the clutter throughout the rest of ACE.
+
+ * ace/ACE: Added two new methods called tv2msec and msec2tv that
+ converts ACE_Time_Value format into millisecond format and vice
+ versa. This will make it easier to port code between NT and
+ UNIX.
+
+ * ace/Reactor: Removed the code in the Reactor that previously
+ allowed it to be resized after it had been initialized. This
+ code no longer was used due to the recent enhancements that
+ ensure the Reactor is only initialized once per-process.
+
+ * ace/Reactor: Modified the Reactor so that it now compiles on NT.
+ It doesn't work yet, but at least it compiles!
+
+ * ace/Reactor: Moved the "max3" method from the Reactor to OS.h,
+ where it has become a template function usable throughout ACE.
+
+ * ace/OS.cpp: Added extern "C" before the NT implementations of
+ readv() and writev().
+
+ * ace/OS.i: Fixed the declaration of ::readv() and ::writev() for
+ cases where the OS doesn't provide them natively.
+
+ * ace/Event_Handler: Modified handle_signal() to take an int
+ rather than an ACE_HANDLE. The old way broke under NT...
+
+ * ace: Made lots of minor changes to resolve signed int
+ vs. unsigned int mismatches. Thanks to the MSVC++ 4.0 compiler
+ for pointing these out. At least it's good for
+ something... ;-).
+
+Fri Dec 29 15:01:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace/ACE.cpp (handle_timed_accept): Reimplemented the core
+ select() loop to make the code portable to Win32.
+
+ * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed a minor bug caused
+ by recent changes (forgot to initialize max_size_ in the
+ constructor...).
+
+ * Updated all the manual pages to reflect the latest changes.
+
+ * ace/ACE.cpp: Fixed up the ACE class so that all of the methods
+ should compile on both Windows NT and UNIX!
+
+ * ace/OS: Moved the get_file_size() method from class ACE and put
+ it into class ACE_OS, where it's been renamed to filesize().
+ This is really more of an "OS" function, e.g., it's supported on
+ Win32 directly.
+
+ * ace/OS.cpp: added readv() and writev() implementations for those
+ platforms (e.g., Windows NT) that require them.
+
+ * ace/Makefile: Added a new regex to the Svc_Conf_l.cpp target
+ that will substitute <stdio> for <unistd>. This should solve a
+ portability problem with Windows NT...
+
+ * ace/Malloc: Modified the sync() and protect() methods to use
+ void * rather than char *. This is now consistent with the OS
+ classes.
+
+ * ace/OS: Changed things so that all the mmap() related OS
+ wrappers use void * in their external interface. Any
+ discrepancies between platforms are now dealt with internally,
+ in the implementation of the methods. Thanks to Chris Lahey
+ (clahey@ix.netcom.com) for suggesting this.
+
+ * ace/Local_Name_Space: Modified how ACE_NS_String is used to
+ instantiate ACE_Map_Manager in order to work around problems
+ with AIX C++. Thanks to Chris Lahey (clahey@ix.netcom.com) for
+ reporting this.
+
+ * ace/Synch.i: Added a definition for ACE_RW_Mutex::acquire().
+
+Fri Dec 29 00:34:16 1995 Chris Lahey (clahey@ix.netcom.com)
+
+ * ace/OS.h: Changed the #ifdef for ACE_HAS_COMPLEX_LOCKS to
+ ACE_HAS_COMPLEX_LOCK.
+
+ Changed prototypes for ACE_OS:mprotect(), msync(), and munmap()
+ to accept ACE_MMAP_TYPE for their first arg. The AIX versions
+ of these calls all expect void * for their pointer variable.
+ Note that madvise() takes a caddr_t for its 1st arg and
+ therefore does not need to be altered. (See related changes in
+ OS.i and Mem_Map.i)
+
+ Changed prototype for ACE_OS::getsockname(), arg3 to int * (See
+ related change in OS.i)
+
+ Changed prototype for ACE_OS::setsockopt(), arg4 to const char *
+ and arg 5 to int (See related change in OS.i)
+
+ * ace/OS.i: Changed function definition for ACE_OS::mprotect(),
+ msync(), and munmap() to accept ACE_MMAP_TYPE as their 1st arg.
+
+ The following changes relate to the inconsistencies in the
+ sockets calls on AIX. I thought it would make more sense to
+ leave the public interfaces alone and then handle the
+ differences internally. That way it won't break any exisiting
+ code.
+
+ Changed function definition for ACE_OS::getsockname() to accept
+ arg3 as int *. Made similar changes in ACE_OS::setsockopt() -
+ change definition to accept const char * for arg4 and int for
+ arg5. Add the following code at the start of the function:
+ Also made changes to ACE_OS::recvfrom() - change arg 6 back so it is
+ int *.
+
+ * ace/Mem_Map.i: In ACE_Mem_Map::advise(), cast 1st arg to
+ ACE_OS:madvise() to (caddr_t).
+
+ * ace/Memory_Pool.cpp: In ACE_MMAP_Memory_Pool::acquire(), make
+ cast to char * in the return statement. In
+ ACE_MMAP_Memory_Pool::handle_signal(), also make same cast in
+ the ACE_DEBUG statement near the top of the function.
+
+ * ace/Reactor.cpp and ace/Reactor.h: ACE_Reactor::handler_i()
+ doesn't return properly if *eh != 0. Remove last "else" so
+ function always returns 0 if handler != 0.
+
+ In ACE_Reactor::owner(), we need to change signature since
+ thread_t is not an integer. This has been changed to int
+ ACE_Reactor::owner(thread_t *t_id); The last two lines have been
+ changed to: *t_id = this->owner_; return 0;
+
+ * ace/Synch.cpp: In ACE_Condition_Mutex::wait(), the call to
+ cond_timedwait() does not exist, but ACE_OS::cond_timedwait()
+ does exist. It takes the same arguments.
+
+ * ace/Synch.h and ace/Synch_T.h: At the end of both files, before
+ the #define INLINE check for this define's existence to avoid
+ causing compilers to choke.
+
+ * ace/Mem_Map.i: In ACE_Mem_Map::operator(), the return statement
+ looked very odd. In the assignment to addr, why is the ", 0" in
+ the statement?
+
+Fri Dec 29 00:34:16 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
+
+ * ace: Fixed up many minor problems with the various types of
+ Shared_Memory wrappers. This mostly entailed changing from char
+ * to void * to be more consistent with the other parts of ACE.
+ In addition, I now only include the *.i files if __INLINE__ is
+ enabled.
+
+ * ace/Memory_Pool.cpp (map_file): Fixed a minor bug by enabling
+ MAP_FIXED if we're trying to map a file using a fixed address.
+
+Thu Dec 28 18:39:16 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
+
+ * ace/Local_Name_Space.cpp: Finished implementing changes to the
+ ACE_Malloc stuff and the Local_Name_Space that Irfan had begun
+ last semester.
+
+ * ace/SString.cpp: Added new optimizations to the assignment
+ operators of the ACE_[WCS]String classes to avoid
+ freeing/allocating memory if the current size is large enough.
+
+ * ace/SString: Added copy constructors...
+
+ * ace/Local_Name_Space.cpp: Modified the implementation of bind()
+ to avoid a race condition.
+
+ * ace/Map_Manager.cpp (bind): Changed the semantics of bind() so
+ that callers can control whether or not INT_IDs are reassigned.
+ Also changed things so that callers can get back the existing
+ value if they choose not to reassign.
+
+ * ace/SString.cpp: Removed the "P" (persistent) versions of all
+ these classes and merged them into the default versions. The
+ persistence is now determined by the type of allocator passed in
+ as a parameter to the constructor (or by using the "default"
+ allocator that is accessible via
+ ACE_Service_Config::allocator()).
+
+ * ace/Map_Manager.cpp: Removed the "P" (persistent) versions of
+ all these classes and merged them into the default versions.
+ The persistence is now determined by the type of allocator
+ passed in as a parameter to the constructor (or by using the
+ "default" allocator that is accessible via
+ ACE_Service_Config::allocator()).
+
+ * ace/Malloc_T: Modified the bind() algorithm so that it will
+ allow the caller to determine whether duplicates are allowed or
+ not... Also changed things so that callers can get back the
+ existing value if they choose not to allow duplicates. Irfan
+ questions the sanity of this... ;-)
+
+ * ace/Synch: To be consistent, added acquire_write and
+ acquire_read methods to ACE_Mutex. These are useful for cases
+ where we are going to be parameterizing classes like ACE_Malloc
+ with some type of mutex wrapper (e.g., ACE_RW_Mutex, ACE_Mutex).
+
+ * ace/Malloc_T.cpp (calloc): Added a new method called "calloc"
+ that will not only allocate the memory dynamically, but will
+ also give it an initial value (e.g., '\0').
+
+Thu Dec 28 01:10:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace/OS.i: Modified the implementation of the TLI methods so that
+ they are conditionally compiled away if the platform doesn't
+ support TLI... Thanks to Neil Cohen for pointing out the need
+ for this...
+
+ * ace/OS.i: Modified the implementation of dlopen() and dlsym() to
+ account for limitations with SunOS 4.x...
+
+ * ace/Service_Repository.cpp: Modified this class to use the
+ ACE_OS::dlclose method.
+
+ * ace/Parse_Node.cpp: Modified this class to use the
+ ACE_OS::dlopen and ACE_OS::dlsym methods.
+
+Wed Dec 27 23:25:03 1995 Jesper S. M|ller (stophph@diku.dk)
+
+ * Added appropriate flags in OS.h for successful inclusion of
+ several header files, such as Malloc.h and friends. Also added
+ mprotect to ACE_OS for Win32 to avoid linker errors.
+
+ * Added a return value (from map_file) to
+ ACE_MMAP_Memory_Pool::handle_signal. The compiler was
+ complaining. Likewise on
+ ACE_MMAP_Memory_Pool::commit_backing_store (there 0 seemed like
+ the correct off-the-end return value).
+
+ * Removed include of some SV semaphore file, if not needed in
+ Malloc.h. Worse for Memory_Pool.h, since the SV_Semaphore
+ wrappers consistently differ completely from the other
+ synchronization routines. I guess we'll need some variant of
+ ACE_Process_Semaphore that takes an integer as a key instead of
+ a string, and does not perform automatic init/destroy.
+
+ * Also upgraded fd's from int to ACE_HANDLEs and changes -1 to
+ ACE_INVALID_HANDLE where appropriate.
+
+ * By help of aggresive preprocessor conditionals, made Handle_Set
+ work with Win32. There is a fd_set abstraction with appropriate
+ FD_xxx macros for WinSock, and it requires no sync'ing. The
+ Handle_Set_Iterator should also work. The good looks of
+ Handle_Set was impaired, though. Right now, the trigger is the
+ ACE_WIN32 flag, although it should be something like
+ ACE_FD_SET_USES_BITS for the unix approach, or like
+ ACE_FD_SET_USES_VECTOR for the WinSock approach.
+
+ * Reactor almost compiles now, but not quite: Handlers are
+ addressed by fd, this is no longer possible - what a mess - we
+ need to step through the handle indices somehow. This will
+ likely get into some nasty quadratic complexities when iterating
+ the handles to find the event_handler for each file
+ handle. Mabye we can circumvent this with a hash table lookup
+ for those opaque handles.
+
+ * There was a problem with the Svc_Conf.l.cpp and the
+ Svc_Conf.y.cpp and the extremely lame MSVC++ 2.0. I had to
+ rename them to Svc_Conf_y.cpp, etc. Awful!
+
+ * Added code to inquire the 'host' name for Win32 in the ACE_Client_Id
+ class. Another candidate for ACE_OS.
+
+ * About 60 or so ACE .cpp files compile now, which reminds me that
+ I'll be working on some precompiled header scheme soon, since it
+ takes for ever and ever, even on my 32meg system with pretty
+ good SCSI drives. Mabye it's because I'm only running a 66MHz
+ i486 DX2 (yawn).
+
+ * Dozens of other changes have been made to various files, all
+ pertaining to int vs. ACE_HANDLE. In Service_Manager.h, a signal
+ number was an ACE_HANDLE, but just close by, some fd's were
+ ints. Fixed that, too.
+
+Sat Dec 23 14:15:16 1995 Jesper S. M|ller (stophph@diku.dk)
+
+ * I've also grouped the .i and .cpp functions by class,
+ and #if'ed the sbrk and SysV pools out, since
+ Win32 cannot support those.
+
+ * Added 'inline' to day accessor functions in Date_Time.
+
+ * Two things that missed me in Trace.cpp:
+ 1) The inclusion order was so that I couldn't
+ build Trace.o, since it didn't know the MALLOC_HOOK thing.
+ I moved the #include of Trace.h down below that of ACE.h.
+ 2) The declaration and definition of the ACE_Trace constructor
+ differed by a const, which I added.
+ 3) When linking, multiple symbols were found for some
+ OS calls like mutex_init, corresponding to the larger
+ OS Win32 functions. I has ACE_INLINED_OS_CALLS off,
+ so sometimes the OS functions were inlined, sometimes
+ not.
+ I disabled the inline hack in Trace.cpp for WIN32 for now.
+ This seemed to resolve matters.
+
+ * There was a major problem in OS.i, where Synch.h was needed for
+ mutex support (in conjunction with TSS info linked list). I
+ chose to make thr_keycreate and some others non-inlined.
+
+ * More 'is-it-a-handle-or-success' confusion in SOCK*.* Changed
+ ACE_SOCK_Dgram to use int status. Changed ACE_SOCK_CODgram to
+ use int status. Changed ACE_LSOCK to use int status. Also
+ changed a few derived classes
+
+Fri Dec 22 14:03:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
+
+ * ace/OS.h: Added a new type for rwlock_t for platforms that don't
+ support threading... Thanks to Neil Cohen for reporting this.
+
+ * ace: Merged in all of Jesper's changes for NT and Chris Lahey's
+ changes for AIX.
+
+ * ace: Merged tli.h into OS.h to avoid name conflicts on Win32.
+
+ * Fixed duplicated names where case is the only difference.
+ ace/thread.cpp
+ ace/Thread.cpp
+ ace/TLI.h
+ ace/tli.h
+ apps/Token_Server/mutex_example/simple_token_client.cpp
+ apps/Token_Server/mutex_example/Simple_Token_Client.cpp
+ apps/Token_Server/script_example/scripting_token_client.cpp
+ apps/Token_Server/script_example/Scripting_Token_Client.cpp
+ tests/IPC_SAP/SOCK_SAP/FD-client.cpp
+ tests/IPC_SAP/SOCK_SAP/fd-client.cpp
+ tests/IPC_SAP/SOCK_SAP/FD-server.cpp
+ tests/IPC_SAP/SOCK_SAP/fd-server.cpp
+
+Wed Dec 20 22:26:24 1995 Jesper S. M|ller (stophph@diku.dk)
+
+ * FIFO.cpp: One last comparison of 'open' return status where and
+ ACE_INVALID_HANDLE should be changed to -1.
+
+ * One more last wrong comparison in FIFO_Recv_Msg.cpp.
+ (Never say never again!)
+
+ * Put an appropriate conditional around the inclusion of
+ Handle_Set.h for ACE_WIN32 (for now).
+
+ * Introduced a few backslashes in the macros of Dump.h that were
+ somehow left out... Had to add a really stupid constructor for
+ struct Tuple. I haven't a clue why MSVC++ wants this! Replaced
+ 'return ACE_ODB;' with 'return ACE_ODB::instance_;' in the
+ Singleton access function.
+
+ * Added a constructor for ACE_ODB. It may be private, but it still
+ needs to be defined...
+
+ * Stack and Set compiles fine for Win32 (not surprisingly)
+
+ * If'ed out the guts of ACE_IPC_SAP enable/disable calls for
+ Win32, since async IO doesn't work that way on there.
+
+ * Event_Handler now uses ACE_INVALID_HANDLE for default args.
+
+ * SOCK compiles except for the ACE_SOCKET <> ACE_HANDLE
+ problem. Refer to issue #3 above.
+
+ * We're swamping the ace directory with .mak files. I used the
+ winntace.mak file, which is compilable and linkable.
+
+Thu Dec 21 15:37:42 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
+
+ * ace: Greatly simplified the include files so that (1) compilers
+ are faster and (2) the ACE_Trace mechanism works correctly.
+
+ * ace/Trace: Modified the ACE_Trace_TSS class so that it is no
+ longer a template. This was overkill since we know the type
+ head of time (i.e., ACE_Trace_State).
+
+ * ace: Added a number of new changes to ACE to make things work on
+ AIX. Thanks to Chris Lahey <clahey@ix.netcom.com> for these
+ changes.
+
+ * ace/Thread_Manager.cpp: Removed the get_max_thr_id() method
+ since it was not portable to NT or POSIX pthreads. Nothing in
+ ACE depended on it anyway...
+
+ * ace/OS: Added a new static data member called NULL_thread that
+ is a "zero'd" out thread id. This is necessary to deal with the
+ POSIX pthread implementation of a thread id, which is not always
+ implemented as a number... By using this new approach, all the
+ special-case code in Synch.cpp disappears...
+
+ * ace/OS: Added a new method to class ACE_OS called thr_equal()
+ that masks the differences between comparing thread ids using
+ the threading libraries. This simplifies the code in Synch.cpp
+ and Reactor.cpp.
+
+ * ace: Updated all uses of mmap() to use the new ACE_MMAP_TYPE
+ typedef. This deals with the fact that different versions of
+ UNIX define mmap() inconsistently (e.g., some use void * and
+ some use char *...).
+
+ * ace: Removed testconfig.h and merged all of those #defines into
+ OS.h. This centralizes changes in one place and also eliminates
+ the need for ./apps and ./tests to include extraneous files...
+
+ * ace/testconfig.h: Changed all uses of 0666 to ACE_DEFAULT_PERMS.
+ Also, removed all PERMS enums and substituted ACE_DEFAULT_PERMS
+ instead.
+
+Wed Dec 20 17:29:55 1995 Tim H. Harrison (harrison@merengue.cs.wustl.edu)
+
+ * Rewrote the Token deadlock detection algorithm. It now performs
+ "best-effort" detection of deadlock for remote acquires and
+ complete deadlock detection for local acquires.
+
+Wed Dec 20 02:37:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace/OS.h: The select() system call has its own include file on
+ AIX: <sys/select.h>. We can wrap the #include with a variable
+ #if defined (ACE_HAS_SELECT_H).
+
+ * include/makeinclude/platform_aix.GNU: Added new support for AIX.
+ Thanks to Chris Lahey <clahey@ix.netcom.com> for these changes.
+ Added a number of other minor changes, as well.
+
+ * ace: Made a bunch of minor changes to get ACE to compile on
+ SunOS4.x, Linux, and SGI.
+
+ * ace/config-linux.h: added ACE_HAS_MSG (thanks to Neil Cohen
+ for this).
+
+ * ace/OS.h: Conditionally compile for ACE_HAS_UTIME for
+ <sys/utime.h>.
+
+ * Released an alpha version of ACE containing the new Windows NT
+ port.
+
+ * Integrated and tested all the new Windows NT changes in class
+ ACE_OS, as well as the Synch* and Threads* classes. We're now
+ able to build Jesper's win32_test.cpp file in ./ace! A complete
+ NT port should be just around the corner...
+
+Tue Dec 19 17:59:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * ace: Move the remaining contents of sysincludes.h into ACE.h.
+ There is no more sysincludes.h (at long last!).
+
+ * ace: Rearranged things so that the OS.[hi] files contain all the
+ OS-specific #defines and #includes that were previously in
+ sysincludes.h.
+
+ * ace: Renamed the ACE_Misc class to class ACE, which is more
+ representative of what it does.
+
+ * INSTALL: updated the installation instructions to explain how
+ the new directory structure works. Thanks to Neil Cohen for
+ pointing out the discrepancy beteen the source and the
+ documentation ;-).
+
+ * Reorganized (by flattening) the ACE library directory structure
+ to make it work for both Windows NT and UNIX. Note that Windows
+ NT does not have symbolic links, so the old way of doing things
+ didn't port... The consequences of these changes is there is
+ now a single directory called $WRAPPER_ROOT/ace that contains
+ the *.[hi] and *.cpp source files. This is also where the
+ libACE.a and libACE.so libraries are built by default. Also,
+ note that the suffix used by ACE has been changed from *.C to
+ *.cpp to deal with the lame Visual C++ compiler...
+
+Tue Dec 19 01:26:54 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
+
+ * tests/ASX/Event_Server/Event_Server/Supplier_Router.cpp (put):
+ Fixed up a problem with the Event_Server. Somewhere along the
+ way it stopped being concurrent! The new version fixes this.
+ Thanks to Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz> for
+ noticing this...
+
+ * Added a billion new changes to class OS to integrate the Windows
+ NT port with the rest of ACE. We are getting very close...
+
+Mon Dec 18 12:45:13 1995 Jesper S. Møller (stophph@diku.dk)
+
+ * Major problems in the IPC_SAP. First, I detected that some open
+ calls returned handles, some returned -1 or 0. For instance
+ ACE_SOCK has a constructor, that calls this->open and expects a
+ handle (which it even sets as the current handle
+ value!). Unfortunately, the return from open is either 0 or -1,
+ depending on how well the open went. ACE_HANDLE being
+ typedef'ed to a void* really reveals some problems! I have
+ solved the problem for the FIFO*.* family and for SOCK.*
+
+Mon Dec 18 12:43:46 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
+
+ * tests/Reactor/CODgram/CODgram.C (main): Fixed a bug in main()
+ caused by initializing the Reactor twice. Thanks to Aurelio
+ Nocerino <aurelio@irsipcs2-27-le0.irsip.na.cnr.it> for reporting
+ this.
+
+ * libsrc/Service_Configurator/Service_Config.C Added a new
+ constructor to ACE_Service_Config that can be used to initialize
+ internal variables without performing a full configuration.
+
+Mon Dec 18 01:22:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Service_Config: renamed tokens.h to sc_tokens.h to avoid
+ file name collision on Win32. Thanks to Jesper S. M|ller
+ <stophph@diku.dk> for reporting this.
+
+ * tests/Mem_Map/IO_Test: renamed io_test.C to test_io.C to avoid
+ file name collision on Win32. Thanks to Jesper S. M|ller
+ <stophph@diku.dk> for reporting this.
+
+ * libsrc/Misc/OS: Implemented condition variables for Windows NT.
+
+Sun Dec 17 21:23:32 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
+
+ * libsrc/Misc/Trace: Fixed up the ACE_Trace class so that it
+ doesn't include any calls that will improperly trigger infinite
+ recursion! This allows the ACE library to be traced completely.
+
+Sat Dec 16 19:12:37 1995 Jesper S. Møller (stophph@diku.dk)
+
+ * Changes to OS.*:
+ * Added conditionals to the OS.h for Win32, for the special ACE/Win32
+ thr_destroy_tss(), which is automatic for Solaris.
+ * Changed declarations of thr_create, thr_suspend, thr_continue,
+ thr_join and thr_[gs]etprio to use hthread_t instead of thread_t.
+ * Changed return type of OS::open from int to ACE_HANDLE.
+ * Provided non-obtrusive handling of thr_handle in OS::thr_create
+ for non-Win32.
+ * Copied ACE::writev to OS::writev for Win32. Something similar
+ should happen for other systems...
+
+ * Changes to Thread.*:
+ * Changed join, suspend and continue to take handles.
+ * Added thread handle return address to spawn.
+
+ * Changes to Thread_Manager.*:
+ * Added thread handles to the Thread_Descriptor structure.
+ * Modified insert_thr and append_thr functions to also take
+ handles.
+ * Made ACE_Thread_Descriptor::Thread_State (a enum) public
+ so Thread_Manager::append_thr could use it as a formal
+ parameter (I suspect this is a bug in MSVC++).
+ * Changes the various flavours of suspend, continue, etc. to
+ use handles instead of id's. Keep in mind that none of this
+ is destructive for Unix, but vital for Win32.
+ * There is still a problem with ACE_Thread_Control registering
+ itself with the Thread_Manager - the thread does not have means
+ of finding it's own handle. In this particular case, we could
+ have the thread duplicate it's pseudohandle into a real one,
+ and pass that one along. I'd really, really, really rather not
+ have to maintain a thread id->handle mapping myself; It would
+ slow down thread manipulation and give some troublesome memory
+ overhead.
+
+ * Changes to Log_Msg.*:
+ * OS::getpid instead of ::getpid.
+
+ * Changes to Misc.*:
+ * Sections inappropriate for Win32 #if'd out...
+ * Provided naive timestamp function (No date) for Win32.
+
+ * Changes to IPC_SAP.*:
+ * Uses OS::ioctl instead of ::ioctl
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+ * Changes to FIFO.*, :
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+ * Changes to FIFO_Send.*:
+ * open now returns an int insted of an ACE_HANDLE.
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+ * Changes to FIFO_Send_Msg.*:
+ * open now returns an int insted of an ACE_HANDLE.
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+ * Uses OS::writev instead of ::writev
+
+ * Changes to FIFO_Recv.*:
+ * open now returns an int insted of an ACE_HANDLE.
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+ * Changes to FIFO_Recv_Msg.*:
+ * open now returns an int insted of an ACE_HANDLE.
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+ * Changes to sysincludes.h:
+ * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
+
+Sat Dec 16 12:29:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.C: Changed the implementation so
+ that the reentrant versions of the library calls are always used
+ (class OS sorts this all out). This reduces the amount of
+ clutter in the code.
+
+ * libsrc/Threads/Synch: Added a new implementation of
+ "readers/writer" locks for both Windows NT and POSIX pthreads.
+ By default, these threads packages don't have this feature.
+
+ * libsrc/Threads/Synch: Added a new macro called
+ ACE_SYNCH_ERROR_RETURN that greatly simplifies the definition of
+ the synchronization wrappers.
+
+ * include/ace/sysincludes.h: Removed the pthreads_map.h file and
+ integrated this into sysincludes.h.
+
+Fri Dec 15 02:39:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc/OS.i: Finished updating class OS so that it will
+ compile correctly for OS platforms that don't support threads,
+ as well as platforms that support POSIX Pthreads vs. Solaris
+ threads, etc.
+
+ * libsrc/Misc/OS: integrated Jesper S. M|ller <stophph@diku.dk>
+ support for POSIX regular expressions (e.g., compile() and
+ step()) and sysinfo() into ACE.
+
+ * Integrated and tested all of Irfan's changes to ACE to support
+ the new persistence Name_Server. This added some new classes in
+ various places that use the ACE_Allocator.
+
+Thu Dec 14 00:23:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/ASX/Event_Server/Event_Server: Fixed an "off by 1" bug in
+ the declaration of char *argv[3] in the open() methods of
+ Supplier_Router.C and Consumer_Router.C. Thanks to the "ever
+ dissatisfied" Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz>
+ for reporting this.
+
+ * libsrc/Service_Configurator/Service_Config: Added a new
+ "Singleton" access point for the global ACE_Allocator.
+
+ * libsrc/Naming/Name_Options.C (parse_args): Made it possible to
+ change the name of the process on the command line via the -P
+ option. The default is still to use argv[0] as the process
+ name.
+
+ * include/ace/testconfig.h (ACE_DEFAULT_GLOBALNAME): Changed the
+ value from "/localnames" to "/globalnames" to avoid a conflict.
+
+ * libsrc/Misc/SString.C: Added Irfan's new "persistent" string
+ mechanisms that use the ACE_Allocator_Manager. We may
+ eventually update the existing SS* stuff to use this.
+
+ * Merged in Jesper S. M|ller <stophph@diku.dk> updates for Windows
+ NT.
+
+ * include/ace/Malloc.h: Added a forward declaration for
+ ACE_Malloc_Iterator right before ACE_Malloc. Thanks to Antonio
+ Tortorici <antonio@rh0011.roma.tlsoft.it> for reporting it.
+
+ * libsrc/Threads/Synch_T.h: Fixed a small typo in
+ ACE_Null_Condition. Thanks to Antonio Tortorici
+ <antonio@rh0011.roma.tlsoft.it> for reporting it.
+
+ * include: Added new config-linux.h and platform_macros.GNU config
+ files for Linux. Thanks to Timothy Newell
+ <910430n@dragon.acadiau.ca> for this stuff.
+
+Wed Dec 13 23:08:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a small typo in the
+ ACE_INET_Addr::set (const char port_name[], ACE_UINT32
+ inet_address) method where the test should be != rather than ==
+ 0. Thanks to Bill Lear (rael@anarchy.cybercom.net) for
+ reporting this.
+
+Sun Dec 10 12:23:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Service_Configurator/Service_Record.C (init): Fixed a
+ small problem where a NULL pointer was being returned if a user
+ passes a non-existent config file (using the -f option) to
+ ACE_Service_Config::open(). Thanks to Dieter Quehl
+ (quehl@erlh.siemens.de) for noticing this.
+
+ * libsrc/Log_Msg/Log_Msg.C (log): added a new option (%T) that
+ causes the current timestamp to be inserted into the log msg.
+ Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting
+ this.
+
+ * libsrc/Misc/Misc: Added a new timestamp() method that returns
+ the current timestamp in the form
+ "hour:minute:second:microsecond." The month, day, and year are
+ also stored in the beginning of the date_and_time array.
+
+ * tests/Shared_Malloc: Added Irfan Pyarali <ip1@cec.wustl.edu> new
+ test program that exercises the new features of ACE_Malloc that
+ are described in the following bullet.
+
+ * libsrc/Shared_Malloc: Added Irfan Pyarali <ip1@cec.wustl.edu>
+ cool new versions of ACE_Malloc and ACE_MMAP_Memory_Pool. These
+ new versions provide the following enhancements:
+
+ 1. Persistence -- via the sync() method
+ 2. Protection -- via the prot() method
+ 3. Named malloc chunks -- via bind(), find(), unbind().
+ 4. Named iteration -- via ACE_Malloc_Iterator
+
+Thu Dec 7 00:31:26 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Signal.C: Replaced ACE_Guard with ACE_TSS_Guard
+ to ensure that locks are correctly released even if
+ Event_Handler::handle_signal() callbacks invoke
+ ACE_Thread::exit(). Thanks to Detlef Becker
+ (beckerd@erlh.siemens.de) for suggesting this.
+
+ * libsrc/Threads/Synch_T: Used inheritance to factor out the
+ shared code between ACE_Guard, ACE_Read_Guard, and
+ ACE_Write_Guard in order to reduce unnecessary duplication.
+
+ * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard
+ to keep a pointer to the LOCK rather than a reference. This
+ makes the code more flexible and aids in factorization.
+
+ * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard
+ to incorporate ACE_Try_Guard semantics. This reduces the amount
+ of classes and duplicate code in ACE.
+
+Wed Dec 6 21:36:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/ace/Trace: Changed the type of the string passed into
+ ACE_Trace from char * to const char *.
+
+ * libsrc/Reactor/Reactor.C: Had forgotten to initialize the
+ initialized_ and requeue_position_ members appropriately in the
+ constructor of the ACE_Reactor if ACE_MT_SAFE is *disabled*.
+ Thanks to Mark Zusman <marklz@topaz.technion.ac.il> for pointing
+ this out.
+
+ * libsrc/Threads/Synch_T.C: changed the order of some methods so
+ they would be properly defined if ACE_HAS_THREADS and
+ ACE_HAS_THREAD_SPECIFIC are *not* enabled. This should fix
+ remaining problems with ACE on SunOS 4 and SGI. Thanks to
+ Aniruddha Gokhale <gokhale@cs.wustl.edu> for noticing this.
+
+Tue Dec 5 01:06:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Changed things around so that the Name_Server and Token_Server
+ client interfaces are include in libACE.
+
+ * libsrc/Shared_Malloc: added a const char *pool_name to
+ ACE_Malloc::ACE_Malloc. This is passed into the constructor of
+ the MEMORY_POOL to make it easier to dynamically name memory
+ pools.
+
+Mon Dec 4 21:20:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch_T: Modified the place that the
+ ACE_Thread_Specific methods are defined so that they will be
+ compiled correctly for platforms without threads or
+ thread-specific storage.
+
+Sun Dec 3 23:04:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX/Message_Block: Modified clone() so that it takes an
+ extra parameter that specifies which flags SHOULD NOT BE
+ TRANSFERED to the clone. This defaults to
+ ACE_Message_Block::DONT_DELETE. Thanks to Alex V Maclinvosky
+ <alexm@teltrunk1.tait.co.nz> for suggesting this.
+
+Sun Dec 3 17:43:11 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
+
+ * The number of files in the Token library has been reduced. As a
+ result, many of the files have been renamed. Also, the .i files
+ have been purged of relatively large methods (these have been
+ moved to the .C files.) Lastly, most uses of dynamic memory
+ allocation have been removed from the library. This was
+ important to reduce the amount of serialization in threaded
+ applications caused by the dynamic allocation.
+
+Sun Dec 3 17:29:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch: Modified all the synchronization classes
+ so that they disallow assignment and initialization!
+
+ * libsrc/Threads/Synch: Moved the ACE_Thread_Specific class from
+ its own files into the Threads/Synch.[Chi] files. This should
+ eliminate a set of horrible interdependencies among files.
+
+Sat Dec 2 16:07:40 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
+
+ * libsrc/Misc/SString.C (ACE_CString): Added a destructor to
+ CString. Thanks to Tim for noticing this...
+
+Tue Nov 28 17:25:02 1995 Prashant Jain (pjain@tango.cs.wustl.edu)
+
+ * apps/Name_Server/client/lib/Name_Proxy: Changed Name_Proxy to
+ inherit from ACE_Service_Object rather than ACE_Event_Handler.
+ This will allow a Name_Proxy to be dynamically linked into an
+ application via the svc.conf file.
+
+ * apps/Name_Server/client/lib/Name_Proxy: Added new methods
+ init, fini, and info.
+
+Tue Nov 28 00:56:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/Threads/test_thread_specific.C: Added code to test the new
+ ACE_TSS_Guard class...
+
+ * libsrc/Threads/Synch_T: Added the new ACE_TSS_Guard class. This
+ class is similar to the existing ACE_Guard, except that it uses
+ thread-specific storage to ensure locks are released even if a
+ thread exits via thr_exit()!
+
+Mon Nov 27 20:39:58 1995 Prashant Jain (pjain@tango.cs.wustl.edu)
+
+ * apps/Name_Server/{client,server}/tests: Added new tests to
+ exercise the key features of the name server.
+
+ * apps/Name_Server/client/lib: Simplified access to the nameserver
+ database. For example, all the network-byte ordering code was
+ moved out of the Local and Remote Name_Spaces. This code is no
+ longer necessary since we'll be providing a different means to
+ get portable name service repositories via a tool that extracts
+ the "key/value/type" tuples and stores them in a
+ machine-independent format. The result of this change is that
+ the Name_Server code is much easier to understand and modify.
+
+ * apps/Name_Server/client/lib: Split local and remote name spaces
+ into two classes to simplify usage. This approach uses the
+ Bridge pattern to have a baseclass called Binding and then have
+ subclasses called Local_Name_Space and Remote_Name_Space. The
+ constructor of Naming_Context then allocates the right one
+ (i.e., it serves as a factory). This approach remove all the
+ switch statements in the code and makes it much easier to use
+ and extend.
+
+ * apps/Name_Server: updated all the Name_Server components to
+ use ACE naming conventions.
+
+ * apps/Name_Server/client/lib: Changed ACE_Name_Options to use the
+ Singleton pattern rather than the global variable...
+
+Mon Nov 27 00:47:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Shared_Malloc/Malloc.h: Named the previously anonymous
+ struct inside of ACE_Malloc_Header to be
+ ACE_Malloc_Control_Block in order to keep the OSE tools working.
+ Thanks to Karlheinz for reporting this.
+
+ * libsrc/Threads/Synch: Fixed a major bug in the ACE_Semaphore
+ wrappers. Apparently, these had slipped between the cracks and
+ were not correctly mapping onto the ACE return value scheme
+ where -1 corresponds to an error with errno set to indicate the
+ type of error.
+
+ * tests: Cleaned up some files that mistakenly were defining
+ LSOCK* objects even for platforms (i.e., Linux) that don't
+ support them. Thanks to Timothy Newell
+ <910430n@dragon.acadiau.ca> for noticing this.
+
+Sun Nov 26 12:42:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Shared_Malloc/Malloc: Added a new accessor method
+ (memory_pool) that returns a reference to the MEMORY_POOL object
+ used to configure ACE_Malloc.
+
+ * libsrc/Shared_Malloc/Malloc: Changed the constructor of
+ ACE_Malloc to take advantage of the new init_release method on
+ all the ACE_*_Memory_Pools.
+
+ * libsrc/Shared_Malloc/Memory_Pool: Added a new method to all the
+ ACE_*_Memory_Pool classes called "init_release". This is called
+ when ACE_Malloc finishes initializing the dynamic memory
+ manager. This method is necessary in order to initialize the
+ ACE_MMAP_Memory_Pool correctly if there are multiple processes
+ that try to initialize ACE_Malloc simultaneously. In addition,
+ also added an ACE_SV_Semaphore_Complex to the
+ ACE_MMAP_Memory_Pool in order to serialize initialization
+ correctly.
+
+ * libsrc/Shared_Malloc/Memory_Pool: Added sync() and protect()
+ methods to all of the ACE_*_Memory_Pool classes in order to
+ support a uniform interface for use with the "robust memory"
+ mechanism we're building.
+
+ * libsrc/Mem_Map/Mem_Map: Added two new "protect" methods to
+ ACE_Map_Manager in order to allow clients to change the
+ protection of memory-mapped regions.
+
+ * libsrc/ASX/Map_Manager: Changed Map_Manager methods to use
+ "const" for EXT_ID and INT_ID at request of Prashant Jain
+ (pjain@cs.wustl.edu).
+
+ * libsrc/Shared_Malloc/Memory_Pool: Revised the
+ ACE_Shared_Memory_Pool so that it would actually work
+ correctly... This code hadn't been reviewed carefully before
+ and there were some bugs...
+
+ * libsrc/Shared_Malloc/Malloc: added "INLINE" to the
+ ACE_Allocator_Adapter components.
+
+ * libsrc/Shared_Malloc/Memory_Pool: Greatly simplified and
+ consolidated the mmap(2) code for ACE_MMAP_Memory_Pool.
+
+ * libsrc/Shared_Malloc/Memory_Pool.i (release): Removed the
+ vestigal this->mmap_.remove() call in release(), but added the
+ appropriate code to close the fd and unmap the region. Thanks
+ to Irfan Pyarali <ip1@cec.wustl.edu> for noticing this.
+
+Sat Nov 25 18:12:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/CORBA/CORBA_Handler.C (activate_service):
+ Modified activate_service so that
+
+ if (service_name != 0
+ && this->register_service (service_name, marker_name,
+ service_location) == -1)
+ return -1;
+
+ is changed to
+
+ if (service_name != 0 && service_location != 0
+ && this->register_service (service_name, marker_name,
+ service_location) == -1)
+ return -1;
+
+ Irfan Pyarali <ip1@cec.wustl.edu> requested this.
+
+Sat Nov 25 16:41:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
+
+ * libsrc/Misc/Set: Changed all the find() and size() methods to
+ be const member functions. Thanks to Irfan Pyarali
+ (ip1@cec.wustl.edu) for requesting this.
+
+Fri Nov 24 02:51:59 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C: Fixed the Reactor so that if we're
+ compiling with DEADLOCK_DETECTION enabled it will create a
+ uniquely named mutex by stringifying "this".
+
+Thu Nov 23 21:45:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP: Changed
+
+ * libsrc/Service_Configurator/Service_Config: Added three new
+ methods to allow programmers to set the process-wide Singletons
+ for Reactor, Service_Repository, and Thread_Manager.
+
+Tue Nov 21 01:59:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Mem_Map/Mem_Map.C: Fixed a stupid typo in map_it() that
+ was causing problems due to unsigned arithmetic semantics...
+ This should make the file_reverse.C Mem_Map tests work correctly
+ now... Thanks to Bill Lear <rael@anarchy.cybercom.net> for
+ noticing the problem.
+
+ * tests/Mem_Map/IO-tests/io_test.C (parse_args): Fixed a
+ classic C/C++ braino in io_test.C:
+
+ The for loop in parse_args()
+
+ for (int c; (c = get_opt () != -1); )
+
+ should be
+
+ for (int c; ((c = get_opt ()) != -1); )
+
+ How embarrassing. Maybe Bertrand Meyer is right -- C++ is too
+ dangerous for its own good... ;-). Thanks to Bill Lear
+ <rael@anarchy.cybercom.net> for finding this!
+
+ * Removed all traces of ACE_Condition<ACE_Mutex> from the library.
+ This should make life much easier for compilers (like G++) that
+ can't grok templates very well...
+
+ * libsrc/Threads/Thread_Specific.C (ts_object): Added a new method
+ that allows you to simultaneously "test and set" thread-specific
+ data! This is used to support a neat new trick that ensures
+ locks are released even if a thr_exit() is called!
+
+ * libsrc/Service_Configurator/Service_Repository: Removed the
+ Recursive_Mutex from Service_Repository and replaced it with a
+ regular (non-recursive) mutex. Had to rewrite the code a bit so
+ that it wouldn't try to call internal methods that acquired the
+ mutex (this leads to instant deadlock!)
+
+Mon Nov 20 01:05:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch: Finally gave in and accepted the fact that
+ GNU G++ is a horrible, horrible blight on mankind... Changed
+ the internals of Synch.[Chi] to completely remove any
+ dependencies on templates. I hope this fixes some portability
+ problems deep in the libraries... Added several new classes to
+ reflect this change: ACE_Mutex_Guard, ACE_Mutex_Condition, and
+ ACE_Recursive_Mutex.
+
+ * libsrc/IPC_SAP/UPIPE_SAP/UPIPE_Acceptor.C (ACE_UPIPE_Acceptor):
+ Fixed a stupid typo that was causing the constructor of
+ UPIPE_Acceptor to become inlined!!!
+
+ * apps/Gateway/Gateway: Fixed up the Makefile so that the gatewayd
+ executable would compile with G++.
+
+ * include/ace/config-irix5.3-sgic++.h: Changed the SGI config.h
+ file so that it uses select() rather than poll() by default.
+ The select() version of the Reactor is implemented more
+ efficiently in ACE...
+
+ * include: Added config files for AIX courtesy of Byron Walton
+ <bwalton@hughes.scg.hac.com>.
+
+ * libsrc/Reactor/Signal.C: #ifdef'd out some code in Signal.[hC]
+ that was causing problems for the HPUX C++ compiler. What a
+ *horrible* compiler!
+
+ * libsrc/Reactor/Event_Handler.h: Added two new methods to
+ ACE_Event_Handler: get_priority() and set_priority(). These
+ will be used to control the behavior of the ACE_Reactor's
+ dispatching. This also required added a new data member to
+ ACE_Event_Handler that stores the priority (which defaults to
+ MIN_PRIORITY).
+
+ * libsrc/Misc/Stack.C (enqueue): Added a new class called
+ ACE_Unbounded_Queue. This is required for Tim's Token_Server
+ connection repository stuff...
+
+ * libsrc/CORBA/CORBA_Handler.C: Added new support to both the
+ single-threaded and multi-threaded versions of CORBA_Handler so
+ that it will now suspend/resume the services associated with a
+ CORBA_Handler.
+
+ * libsrc/CORBA/CORBA_Handler.C (ACE_MT_CORBA_Handler): Updated the
+ constructor to use the associated Thread_Manager to spawn a new
+ thread. This will allow the suspend() and resume() methods to
+ atomically resume and suspend the daemon thread and its event
+ handler.
+
+ * libsrc/Threads/Synch.h: Fixed up the order of #includes to solve
+ problems with circular header dependencies!
+
+ * Had to add zillions of little changes to avoid problems with
+ circular includes for G++...
+
+ * tests/ASX/Event_Server/Event_Server/Peer_Router.C (bind_peer):
+ Fixed a typo that had been dormant for ages due to C++'s very
+ late binding of templates... G++ picked this right up!
+
+Sun Nov 19 11:55:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Signal: Replaced the static HANDLER_SET stuff
+ withing ACE_Sig_Handlers with a different implementation using
+ ACE_Fixed_Set. This should fix nasty problems with static
+ variables on HP/UX...
+
+ * Fixed the entire library so that all occurrences of ace_log_msg
+ are changed to use the ACE_LOG_MSG macro. This macro has magic
+ properties that should greatly simplify the effort required to
+ compile ACE robustly on platforms with lame C++ compilers...
+
+ * libsrc/Log_Msg/Log_Msg: Finally got my act together with respect
+ to thread-specific data and the ACE_Log_Msg class. The new
+ version can be conditionally compiled such that it won't use the
+ ACE_Thread_Specific smart-pointer wrapper mechanism unless the
+ platform supports thread-specific storage and threads. This
+ will make life much easier for lame C++ compilers that can't
+ handle static data member templates correctly...
+
+ * apps/Name_Server/{client,server}/lib/Makefile (LIBS): Added a
+ reference to -lACE in the Makefiles of the ./lib directories in
+ order to get GCC to work correctly...
+
+ * Added a bunch of fixes courtesy of Bill Lear
+ <rael@anarchy.cybercom.net> to make ACE compile more cleanly
+ with GNU GCC 2.7.x.
+
+Sat Nov 18 11:27:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc/Trace.C: Fixed up the ACE_Trace class so that it
+ will compile better on platforms that don't support
+ thread-specific storage. The trick was to make a new Singleton
+ called ACE_Nest_Depth and then conditionally compile it
+ according to whether the platform supports thread-specific data
+ or not!
+
+ * include/makeinclude/platform_sunos5_g++.GNU: Added the new
+ config file that should allow ACE to build correctly with GCC
+ 2.7.x. Todd L. Montgomery <tmont@cerc.wvu.edu> deserves a big
+ round of applause for getting this stuff to work! If I had a
+ budget, I'd give him a raise ;-)
+
+ * libsrc/Misc/Set.C (remove): Tightened up the semantics of all
+ the *Set::remove() methods so that they return 1 if they
+ succeed, 0 if the item isn't in the set, and -1 if they fail.
+ Thanks to Tim Harrison for noticing the inconsistencies.
+
+Fri Nov 17 01:34:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Logger/Reactor_Logger: Fixed up this example app so that it
+ would compile with GNU G++ correctly. There was a problem with
+ the order of include files! Thanks to Todd L. Montgomery
+ <tmont@cerc.wvu.edu> for reporting this.
+
+ * libsrc/ASX/Module.C (writer): Fixed ACE_READER so that it is
+ properly qualified with ACE_Task_Flags::ACE_READER. Thanks to
+ Neil Cohen (nbc@metsci.com) for finding this!
+
+ * apps/Gateway/Gateway/Routing_Entry: Replaced ACE_Fixed_Set with
+ ACE_Unbounded_Set to get around the seemingly endless problems
+ with HP/UX...
+
+ * libsrc/Misc/Set: Fixed a braino in ACE_Unbounded_Set, where I'd
+ forgotten to define cur_size_. Thanks to Todd L. Montgomery
+ <tmont@cerc.wvu.edu> for reporting this.
+
+ * libsrc/Connection/Acceptor.C: Change the #undefs of the
+ shorthand names PA_AC_1, PA_AC_2, and PA_AD in
+ libsrc/Connection/Acceptor.C to PR_AC_1, PR_AC_2, and PR_AD
+ (same as in Connector.C and Strategies.C). Thanks to
+ Dieter Quehl <quehl@erlh.siemens.de> for reporting this.
+
+Thu Nov 16 02:14:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc/Trace: Fixed the ACE_Trace stuff by making the
+ "nesting_indent_" a static data member. This will undoubtedly
+ break some lame C++ compilers, but it's easy enough to remove
+ this stuff via conditional compilation using the ACE_NTRACE
+ #define in ./include/ace/config.h.
+
+ * libsrc/Threads/Thread_Specific.C (cleanup): Under no
+ circumstances should ACE_Thread_Specific be allowed to
+ called ACE_Trace. Otherwise, chaos will result!
+
+ * apps/Name_Server/{client,server}/tests/Makefile: Switched the
+ order of the -lACE and -lName* so that -lACE came *afterwards*
+ in order for the SGI linker to pick up the symbols correctly.
+
+ * libsrc/Reactor/Signal: I'd accidentally put the "dump" methods
+ in the *.i file rather than the *.C file. This was causing
+ problems for G++.
+
+ * libsrc/ASX/Task: Changed all "Q_" prefixes to "ACE_" prefixes in
+ order to work around a bug with HP/UX...
+
+ * Recompiled everything on SunOS 4.x with SunC++ 4.0.1. It seems
+ to work!
+
+Thu Nov 16 18:05:03 1995 Tim H. Harrison (harrison@tango.cs.wustl.edu)
+
+ * I moved around some class declarations so that g++ can properly
+ instantiate templates for ACE_Token_Collection and
+ ACE_Token_Manager.
+
+Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
+
+ * The token library should now compile on platforms which do not
+ support threads. All token components will be compiled into the
+ library, but use null mutexes and condition variables. The
+ remote mutex library shall run properly on single-threaded
+ platforms, so it compiles as usual.
+
+Wed Nov 15 01:05:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Fixed a bunch of minor problems with the SGI port. Things
+ should work now on IRIX 5.3!
+
+ * man/man3: Completely regenerated all the manual pages to
+ reflect all the recent updates.
+
+ * libsrc: Added ACE_TRACE macros to every single method in ACE!
+ This will help with debugging...
+
+Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
+
+ * The token library should now compile on platforms which do not
+ support threads. All token components will be compiled into the
+ library, but use null mutexes and condition variables. The
+ remote mutex library shall run properly on single-threaded
+ platforms, so it compiles as usual.
+
+Tue Nov 14 01:58:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/CORBA: Added a new test to illustrate the
+ ACE_MT_CORBA_Handler.
+
+ * libsrc/ASX/Task.C (ACE_Task_Exit): Fixed a niggling problem with
+ ACE_Task_Exit. Originally, if a thread exited via an implicit
+ ACE_Thread::exit() (i.e., "falling off the end of the
+ ACE_Task::svc_run function) then the ACE_Thread_Control on the
+ thread stack would automatically unregister the thread from the
+ ACE_Thread_Manager. However, this did *not* occur if a thread
+ explicitly called ACE_Thread::exit() since in that case the
+ destructor for ACE_Thread_Control never got called. The
+ solution to this is a trivial change to ACE_Task_Exit, which now
+ maintains an instance of ACE_Thread_Control internally, which
+ will automatically be released when the thread-specific
+ thread-exit-hook destructor gets called to cleanup upon thread
+ exit. Since this happens regardless of whether the thread
+ terminates implicitly or explicitly the ACE_Thread_Manager will
+ always be able to clean up it's internal resources (unless the
+ process exit()s, which is a whole different issue... ;-)).
+
+ * Changed all occurrences of ACE_CORBA_Handler to
+ ACE_ST_CORBA_Handler. Now we've got two types of
+ CORBA_Handlers: single-threaded (ST) and multi-threaded (MT).
+ Take a look at ./apps/Orbix-examples/Event_Comm/{Supplier,Consumer}
+ for an example of how to leverage this in a portable manner!
+
+ * libsrc/CORBA/CORBA_Handler: Totally redesigned the ACE
+ CORBA_Handler stuff so that it now uses the Singleton pattern
+ explicitly, rather than using the half-baked static method
+ version... Changed the test code to reflect this update!
+
+ * libsrc/CORBA/CORBA_Handler.C (activate_service): Changed the
+ check so that if <service_name> == 0 then we don't try to do a
+ putit (previously, this check used <marker_name>, which is less
+ useful...).
+
+ * libsrc/CORBA/CORBA_Handler.C (activate_service): Removed the
+ <default_iterations> flag from the constructor so that we can
+ make the CORBA_Handler and the MT_CORBA_Handler equivalent.
+
+ * include/ace/sysincludes.h: Added a new macro called
+ ACE_THREAD_EXIT_HOOK that enables application threads
+ (including the main thread) to register a Task * who's
+ close method will automatically be called when the thread
+ exits, either implicitly (by falling off the end) or explicitly
+ (by a thread calling ACE_Thread::exit ()).
+
+ * libsrc/ASX/Task: Moved ACE_Task_Exit into the interface part of
+ ACE_Task so that Irfan can maybe use this in his stuff ;-).
+
+ * libsrc/Misc: Incorporated the ACE_Date_Time class into the
+ release. This is an *interface* for a system independent
+ representation of date and time. Implementation will follow...
+
+ * libsrc/CORBA: Added a new MT_CORBA_Handler, which makes it
+ very straightforward to integrate the ACE_Reactor with
+ multi-threaded (MT) Orbix.
+
+ * libsrc/Threads/Token.C: Yow, fixed a dumb problem in Tokens.C
+ where I was failing to include the *.i file if we weren't
+ compiling with inlining on!!!!
+
+Mon Nov 13 01:13:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX/Message_Block: Added several new methods to
+ Message_Block to allow users to access and set various flags.
+ Thanks to Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz> for
+ suggesting this and providing a prototype implementation.
+
+ * include/ace/sysincludes.h: Added a new macro called ACE_NDEBUG
+ that can be used to toggle support for "live object dumping".
+ If this macro is enabled then
+
+ * libsrc/Misc/Dump.h: Added support for "live object dumping" into
+ ACE. This technique is implemented with the "External
+ Polymorphism" pattern described in a paper available at
+ http://www.cs.wustl.edu/~schmidt/EuroPLoP-96.ps.Z.
+
+ * libsrc/Threads: Added new classes called *_Process_* and
+ *_Thread_* for ACE_RW_Mutex, ACE_Barrier, ACE_Condition, and
+ ACE_Semphaore. This will allow programmers explicitly state the
+ scope of their locks more explicitly and will also facilitate
+ portability to Windows NT...
+
+ * libsrc/Threads: Updated the constructors of all the Synch and
+ Synch_T classes to take an option const char * called "name."
+ At the moment, this doesn't do anything, but when we port to
+ Window NT it will be used to ensure that we can name our
+ process-global synchronization objects.
+
+ * libsrc/Threads/Synch: Added a new tryacquire method to
+ ACE_RW_Mutex to be consistent with acquire and release...
+
+ * libsrc/Threads/Synch.C (ACE_Mutex): Added a new "name" parameter
+ to an ACE_Mutex in order to support process-semantics on NT...
+
+ * include/ace/sysincludes.h: Added a #define for EDEADLK in case
+ some systems don't support it (this is needed by the new
+ ACE_*_Token stuff).
+
+Sun Nov 12 14:17:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Name_Server: Modified the client and server test programs
+ so that they can both be linked statically and/or dynamically.
+ If svc.conf is present then dynamic linking is used, otherwise
+ static linking is used. This makes it much easier to test!!!
+
+ * apps/Name_Server/client/lib/Naming_Context.C (local): Changed
+ things a bit so that if our server host name is "localhost" then
+ we assume we are local no matter what...
+
+ * apps/Name_Server: Moved directories around a bit so that all the
+ tests and libs for the client/server portions of the
+ ACE_Name_Server build correctly...
+
+ * apps/Name_Server/server: Replaced the ad hoc Name_Acceptor and
+ Name_Handler to use the official ACE_Acceptor and
+ ACE_Svc_Handler... This cleans up the code considerably...
+
+ * libsrc/Threads/Synch: Added a new wrapper for the the UNIX file
+ locking mechanism called ACE_File_Lock. This has the same
+ interface as the other locking mechanisms (e.g., ACE_Mutex and
+ ACE_Semaphore). Therefore, it can be used in the ACE_Guard
+ class!
+
+Sat Nov 11 13:53:48 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Shared_Malloc/Memory_Pool: Improved MMAP_Memory_Pool so
+ that it will be smarter about remapping the file if we aren't
+ trying to force a fixed addr to be used for the mapping. In
+ particular, if we *aren't* forcing a particular address, the new
+ solution will be more flexible and allow the OS to determine
+ where to remap the memory should we need to grow the backing
+ store and the mapping range...
+
+ * libsrc/Misc/Set: Implemented a simple version of the
+ Unbounded_Set class and its iterator.
+
+ * libsrc/Misc/SString: Changed all the implementations of methods
+ in SString classes to use new/delete rather than
+ strdup()/free().
+
+ * apps/Name_Server/client/Name_Proxy: Changed rcv_reply() to
+ recv_reply().
+
+ * apps/Name_Server/client/Name_Proxy: Modified ACE_Name_Proxy so
+ that the constructor and open take an ACE_Synch_Options.
+
+ * apps/Name_Server/client/Name_Options.C (ACE_Name_Options): Added
+ a default for the Name_Space directory called
+ (ACE_DEFAULT_NAMESPACE_DIR) to the testconfig.h file...
+
+Sat Nov 11 00:24:37 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
+
+ * tests/Tokens/test_token_manager/test_token_manager.C: The token
+ manager has a working deadlock detection algorithm.
+ ACE_Local_Mutex uses this to report deadlock situations.
+ Changes were made to ACE_Local_Mutex to fix a couple bugs which
+ were causing deadlock. Also, a new test application has been
+ added to test deadlock detection using the local mutex.
+
+Fri Nov 10 17:16:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Mem_Map/Mem_Map.h: Changed the type of <length_> from
+ long to size_t.
+
+ * tests/Threads/test_thread_manager.C (main): Added a main() for
+ the case when there's
+
+ * tests/ASX/UPIPE_Event_Server/event_server.C (main): Fixed a
+ typo that was causing problems on SunOS 4.x.
+
+ * tests/Service_Configurator/IPC-tests/client/local_spipe_client_test.C:
+ added #include "ace/Log_Msg.h" (why was this working?!).
+
+ * include/makeinclude/rules.lib.GNU: Changed the order of operations
+ in rules.lib.GNU from
+
+ $(AR) $(ARFLAGS) $@ $?
+ -$(RANLIB) $@
+ -chmod a+r $@
+
+ to
+
+ $(AR) $(ARFLAGS) $@ $?
+ -chmod a+r $@
+ -$(RANLIB) $@
+
+ to keep ranlib happy on SunOS 4.x.
+
+ * apps/Time_Server: Added a Makefile
+
+ * include/ace/sysincludes.h: Removed the <termios.h> include
+ since it was causing major problems on SunOS 4.x...
+
+ * apps/Name_Server/Naming_Context.C: Fixed up a couple of problems
+ with casts. Thanks to Jack Erickson <jack@cibc.com> for
+ pointing this out.
+
+Thu Nov 9 15:49:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch_T: moved Atomic_Op from ./Misc to ./Threads
+ and merged it into the Synch_T files. This makes more sense as
+ a place to put it...
+
+ * libsrc/Misc/SString.C (operator +=): Fixed a typo that would
+ have caused mistakes when memcpy() was used. Thanks to Prashant
+ Jain <pjain@wuerl.wustl.edu> for noticing this.
+
+Wed Nov 8 22:36:51 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C (TOKEN_GUARD): The reactor now uses the
+ TOKEN_GUARD macro. The Reactor can now be conditionally
+ compiled with ACE_REACTOR_HAS_DEADLOCK_DETECTION to use the new
+ ACE_Local_Mutex in conjunction with the ACE_Token_Manager to
+ detect deadlock. The deadlock detection algorithm has not yet
+ been implemented, but the hooks are now in place.
+
+ * libsrc/Tokens: This subdir includes ACE's new Token library.
+ Check out libsrc/Tokens/README for more info.
+
+ * tests/Tokens: There are a couple test applications for the new
+ Token library. See tests/Tokens/README for more info.
+
+ * apps/Token_Server: This directory contains some new client
+ interfaces to the old ACE TokenServer, now Token_Server. There
+ are also some example use cases included in this directory. As
+ always, see apps/Token_Server/README for more info.
+
+Wed Nov 8 00:14:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/IO_SAP: Added the new classes for IO_SAP from
+ Gerhard Lenzer (lenzer@csaserv.erlh.siemens.de). This
+ eliminates UNIX I/O-specific features from ACE.
+
+ * libsrc/Misc/Set: Added a new find() method to each of the
+ ACE_*_Set classes...
+
+ * include/ace/sysincludes.h (ACE_ALLOC_HOOK_DECLARE): Changed
+ enum __Ace { __ACE } to struct __ACE {}. I think this
+ will cause less problems with M.I...
+
+ * libsrc/ASX/Message_Block: Added a new "allocator" parameter to a
+ Message_Block. This allows the memory stored by a Message_Block
+ to come from someplace besides the normal heap (e.g., a shared
+ memory segment!).
+
+ * libsrc/ASX/Message_Block.C (ACE_Message_Block): Yow, fixed a bug
+ in the destructor where ACE_BIT_ENABLED was being used in place
+ of ACE_BIT_DISABLED! I think this was causing a memory leak...
+
+ * libsrc/Reactor/Reactor: added a pair of methods that allow a
+ thread to set/get the notion of who "owns" the event loop. Only
+ the owner of the loop can do a handle_events() call. Also
+ changed things so that the requeue_position() are available for
+ both threaded and non-threaded implementations (just to have a
+ uniform interface...).
+
+ * libsrc/ASX/Message_Block: added a new constructor and a new
+ init() method that just assume ownership of a char * passed
+ as the parameter. Note that this does *not* set any other
+ fields in the Message_Block and is only used to ferry around
+ totally opaque data in the Message Block!
+
+Tue Nov 7 00:52:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/Log_Msg/test_log_msg.C (main): Added some new tests to
+ make sure that op_status() and errnum() work on ace_log_msg.
+ Thanks to Tim Harrison for these tests.
+
+Mon Nov 6 12:55:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Specific: Changed a couple of places in
+ the Thread_Specific code so that key_ is initialized to 0 and
+ the ts_obj * is initialized to 0. If these *aren't* 0 then
+ weird bugs happen on Solaris... Thanks to Tim Harrison for
+ noticing this and suggesting the fix!
+
+ * libsrc/Threads/Synch_T: Added an accessor method to obtain
+ the underlying mutex within ACE_Condition.
+
+ * libsrc/Threads/Synch.C (ACE_Process_Mutex): Added a dummy
+ argument of type const char * to ACE_Process_Mutex. This is in
+ anticipation of the info required in Windows NT to support a
+ named process-wide Mutex. On UNIX, this argument is ignored...
+
+Fri Nov 3 19:02:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SOCK_SAP: Back from C++ World... Fixed a couple
+ of typos in SOCK_Dgram_Bcast and SOCK_CODgram that included the
+ *.i files multiple times... Thanks to Alex V Maclinvosky
+ <alexm@teltrunk1.tait.co.nz> for reporting this.
+
+Tue Oct 31 02:12:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor: Modifed the MT_SAFE Reactor so that the
+ its open() method keeps track of which thread originally created
+ it. This thread is then considered the "owner" of the Reactor.
+ If a different thread tries to run the handle_events() method
+ then an error is returned.
+
+ * libsrc/ASX/Task.C: Added a "group id" field to the ACE_Task.
+ This can be used to suspend and resume a group of tasks
+ atomically. Also added default suspend() and resume() methods
+ that do just that!
+
+ * libsrc/Reactor/Reactor: Made the open() method
+ thread-safe. Thanks to Detlef Becker (beckerd@erlh.siemens.de)
+ for pointing out the need for this.
+
+Mon Oct 30 00:02:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool):
+ Made it possible to configure the ACE_MMAP_Memory_Pool with a
+ (backing_store_) file name so that it is possible for multiple
+ processes to share one wellknown file, as well as to have
+ multiple pools per process. Check out the
+ ./tests/Shared_Malloc/test_malloc.C file for an example of how
+ this works (try the -p -e -L10000 -t3 options).
+
+ * libsrc/Reactor/Reactor: Moved handler_i into the *.C file to
+ avoid problems with inline functions on HP/UX.
+
+ * libsrc/Misc/SString: Added a new class called ACE_CString. This
+ class is similar to ACE_WString (which has "wide character"
+ size), though CString has regular "char" size. Note that both
+ of these classes are "true" string classes, unlike ACE_SString,
+ which is a very simple string class that is only to be used for
+ very specific purposes...
+
+ * libsrc/Shared_Malloc/Memory_Pool.C (acquire): Fixed an
+ "off-by-one" error in ACE_MMAP_Memory_Pool::acquire() that was
+ causing an extra byte to be written to the backing store file...
+ This was causing the ./tests/Shared_Malloc/test_malloc.C program
+ to fail when -p was given. After this fix the test works
+ again... (thank God!).
+
+Sun Oct 29 22:43:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Shared_Malloc/Malloc: Added two new classes:
+ ACE_Allocator and ACE_Allocator_Adapter. ACE_Allocator uses
+ inheritance and dynamic binding to provide extensible mechanisms
+ for allocating and deallocating memory. ACE_Allocator_Adapter
+ implements the Adapter pattern to enable ACE_Allocator to be
+ used with instantiations of the ACE_Malloc<> template class.
+
+Sat Oct 28 13:51:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/ASX/Event_Server: Added a new directory called
+ UPIPE_Event_Server, which tests a version of the Event_Server
+ that is instantiated with ACE_UPIPE_* IPC mechanisms,
+ rather than by the ACE_SOCK_* mechanisms.
+
+ * libsrc/IPC_SAP/Addr: Created a new file called UPIPE_Addr.h.
+ This file contains a typedef of ACE_SPIPE_Addr to
+ ACE_UPIPE_Addr. The purpose of doing this is to "logically"
+ decouple the ACE_UPIPE* classes from the ACE_SPIPE* classes
+ (even though they share the same *physical* representation at
+ this point...).
+
+ * libsrc/IPC_SAP: Fixed a small bug in TLI_Connector.connect() and
+ SOCK_Connector.connect() that failed to set the
+ new_stream::handle_ to ACE::INVALID_HANDLE when the connection
+ failed. Thanks to the ever-astute Mark Patton
+ (mark_patton@tx72.mot.com) for noticing this.
+
+Thu Oct 26 15:08:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/Threads: created a new test program called
+ test_thread_manager.C that tests the new semantics for managing
+ groups of threads.
+
+ * libsrc/Reactor/Signal.C (ACE_Sig_Action): Added a new method
+ that allows me to create a Sig_Action object that contains both
+ the handler and the signal to register for. This handler is
+ register to handle the signal in the constructor of the
+ object...
+
+ * libsrc/Threads/Thread_Manager: enhanced the Thread_Manager to
+ add support for operations (i.e., suspend, resume, kill) on a
+ group of threads.
+
+ * libsrc/Threads/Thread_Manager: Added a new method that allows
+ the Thread_Manager to resize itself automatically when it's
+ internal table gets full.
+
+ * libsrc/Threads/Thread_Manager: Updated the return value of
+ Thread_Manager::spawn() and Thread_Manager::spawn_n() so that
+ they return -1 on failure *and the group id* on success.
+ Originally, they returned 0 on success, but this new return
+ value is more useful since it can be used to control groups of
+ threads atomically.
+
+Wed Oct 25 01:03:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Name_Server: Began integrating the newly donated name
+ server into ACE. There are a number of dependencies on
+ RogueWave that must be removed, but things are looking good so
+ far.
+
+ * libsrc/Misc/Set: Changed the name of ACE_Unordered_Set to
+ ACE_Fixed_Set to be consistent with the ACE Stack classes...
+
+ * libsrc/Misc/Set: Added new ACE classes called ACE_Unbounded_Set,
+ ACE_Bounded_Set, ACE_Unbounded_Set_Iterator, and
+ ACE_Bounded_Set_Iterator to deal with ACE name service
+ stuff.
+
+ * libsrc/Misc/SString: Added a new class called ACE_WString that
+ gives a very simple "wide-character" string representation for
+ ACE. This is needed for the ACE name service stuff.
+
+ * libsrc/Misc/SString.C (operator =): Fixed this so that ::strdup
+ is matched up with ::free, rather than with delete...
+
+ * libsrc/Log_Msg/Log_Msg.C (log): Updated the ACE_Log_Msg class to
+ store an ostream * in thread-specific storage. This can be used
+ in conjunction with the dump() method on each ACE class, as well
+ as with the ACE_ERROR and ACE_DEBUG logging macros.
+
+Tue Oct 24 00:19:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added a definition of the dump() method to every class in ACE in
+ anticipation of the changes requested for Siemens.
+
+ * Changed all occurrences of ACE_Signal_* to ACE_Sig_* to make the
+ ACE naming of signal handling wrappers consistent.
+
+ * libsrc/Threads/Thread: Fixed some obscure bugs with the way that
+ ACE_Thread was compiling on platforms that don't support
+ threads.
+
+ * include/ace/config-irix*.h: Removed all TLI support from the SGI
+ platform. It seems to be totally screwed up from the tests that
+ I've run and there's no sense in bending over backwards to
+ support an IPC API that is brain-damaged to begin with...
+
+ * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: Fixed
+ up the code so that the Thr_Logging_Server stuff will compile
+ correctly even for platforms that lack threads!
+
+ * libsrc/Connection/Strategies: Added new strategies that provide
+ Singleton creation and Process concurrency policies.
+
+ * libsrc/Connection/Connector.C (handle_close): Make sure that all
+ pending timer objects are removed from the Reactor's timer queue
+ when a Connector shuts down. In addition, make sure to remove
+ and delete all dynamically allocated ASTs, as well. Thanks to
+ Karl-Heinz Dorn (kdorn@erlh.siemens.de) for suggesting this.
+
+ * libsrc/Threads/Thread_Manager.C (wait): Modified wait() so that
+ it now takes an ACE_Time_Value *, which can be used to wait
+ until all threads terminate or a timeout occurs...
+
+ * libsrc/Threads/Thread_Manager: Moved Thr_Descriptor from within
+ the ACE_Thread_Manager class to become ACE_Thr_Descriptor at
+ file scope. This is in anticipation of the cool new thread
+ manager stuff on the way...
+
+ * libsrc: Updated every class in ACE to include a "dump" method
+ with the signature "void dump (void);" This method soon will be
+ tied into the ACE_Dump mechanism to allow all live objects in
+ ACE to have their state dumped automagically on-demand. This is
+ useful for debugging and tracing etc.
+
+ * libsrc: Updated every class in ACE to include a "Alloc hook."
+ This hook will enable all ACE classes to be allocated from a
+ particular memory pool.
+
+ * include/makeinclude/rules.local.GNU: fixed the clean target to
+ delete the *.rpo files (else gcc -frepo can get some crazy
+ errors) and combines all rm-commands for the target realclean
+ into one command (in some cases the last two lines do not have
+ any files to delete, in which case rm produces an usage
+ message). Thanks to John Huchinson (hutchiso@epi.syr.ge.com)
+ for the patch.
+
+ * libsrc/IPC_SAP/Addr/INET_Addr: Fixed all the uses of gethost*
+ and getserv* to use the reentrant get*_r functions if
+ ACE_HAS_REENTRANT_FUNCTIONS is set and ACE_MT_SAFE is set.
+ Thanks to Bill Tang <tang@tekats.com> for suggesting this.
+
+ * libsrc/Misc/OS: Started adding support for the POSIX *_r
+ functions to the OS class.
+
+ * include/ace: Added a new #define called
+ ACE_HAS_REENTRANT_FUNCTIONS. This indicates that the platform
+ supports reentrant functions (i.e., all the POSIX *_r functions
+ like gethostbyname_r).
+
+Mon Oct 23 21:15:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/makeinclude/platform_irix5.3.GNU (LIBS): Removed the
+ link of the nsl lib since it seems not to be present on this
+ platform. Thanks to Karel Zuiderveld
+ <Karel.Zuiderveld@cv.ruu.nl> for noticing this.
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.i (operator ==): Enhanced the
+ semantics of comparison to check both the port number and IP
+ address. Thanks to Mark Patton (mark_patton@tx72.mot.com) for
+ suggesting this.
+
+Thu Oct 19 00:10:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a stupid bug that
+ failed to set errno appropriately if things go wrong with this
+ method. Thanks to Mark Patton (mark_patton@tx72.mot.com) for
+ noticing this!
+
+Sat Oct 14 12:07:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Manager: Modified the Thread_Manager so
+ that even in the case where we are compiling for non-MT systems
+ the Thread_Manager still has the same method interface (all of
+ which are no-ops).
+
+Wed Oct 11 00:12:57 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
+
+ * Finished commenting all the classes in ACE. Updated all manual
+ pages accordingly.
+
+Fri Oct 6 14:17:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/ASX/Event_Server/Event_Server: Changed
+
+ ACE_SOCK_Acceptor &sa = (ACE_SOCK_Acceptor &) *this->acceptor_;
+
+ to
+
+ ACE_SOCK_Acceptor &sa = this->acceptor_->acceptor();
+
+ Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting
+ this.
+
+Thu Oct 5 00:22:56 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX/Map_Manager: Added a new find() method to the
+ Map_Manager. This method only checks for the existence of an
+ EXTERNAL_ID, and doesn't return the INTERNAL_ID.
+
+ * Introduced the new "trait"-based *_Connector, *_Acceptor, and
+ *_Stream interfaces for all the IPC_SAP classes. Basically, for
+ each class like
+ {SOCK,TLI,SPIPE,etc,}_{Acceptor,Connector,Stream}, there's now a
+ typedef for the appropriate type of ACE_*_Addr subclass and the
+ appropriate type of ACE_*_Stream class. For example, here's
+ what's in ACE_SOCK_Acceptor (same goes for ACE_SOCK_Connector):
+
+ class ACE_SOCK_Acceptor
+ {
+ public:
+ // ...
+
+ // = Traits.
+ typedef ACE_INET_Addr PEER_ADDR;
+ typedef ACE_SOCK_Stream PEER_STREAM;
+ };
+
+ Once C++ compilers can grok template typedefs correct, this new
+ approach will allow much greater simplification of code, so that
+ template classes like
+
+ template <class SVC_HANDLER, class PEER_ACCEPTOR, class PEER_ADDR>
+ class ACE_Acceptor { /* ... */
+ virtual int open (const PEER_ADDR &);
+ };
+
+ that are currently used like this:
+
+ ACE_Acceptor <My_Svc_Handler, ACE_SOCK_Acceptor, ACE_INET_Addr> acc;
+
+ can be replaced with
+
+ template <class SVC_HANDLER, class PEER_ACCEPTOR>
+ class ACE_Acceptor { /* ... */
+ virtual int open (const PEER_ACCEPTOR::PEER_ADDR &);
+ };
+
+ that are used like this:
+
+ ACE_Acceptor <My_Svc_Handler, ACE_SOCK_Acceptor> acc;
+
+ i.e., the ACE_SOCK_Acceptor maintains a "trait" that the
+ ACE_Acceptor uses to determine the appropriate addr. This is
+ more concise and less error-prone than the current scheme that
+ requires you to pass into the ACE_INET_Addr separately (ugh).
+
+ Note that the trick to making all this work is to typedef the
+ PEER_ADDR trait into the ACE_SOCK_Acceptor class, as follows:
+
+ class ACE_SOCK_Acceptor {
+ public:
+ typedef ACE_INET_Addr PEER_ADDR; // Trait...
+ };
+
+ Unfortunately, none of the C++ compilers (e.g., SunC++ 4.0.1,
+ G++ 2.7.0) support this stuff yet... Therefore, I've added
+ a set of macros that that will toggle back and forth between
+ whichever approach works, depending on the setting of
+ ACE_HAS_TEMPLATE_TYPEDEFS. Hopefully, over time compilers will
+ support this stuff correctly and life will become easier.
+
+ * libsrc/ASX/Message_Queue: Changed all occurrences of the S_MUTEX
+ and S_CONDITION macros to ACE_SYNCH_MUTEX and
+ ACE_SYNCH_CONDITION in order to conform to the new ACE namespace
+ control conventions.
+
+ * libsrc/Connection/Acceptor: Modified the Acceptor class to split
+ it into two classes: ACE_Acceptor (which implements a very
+ simple, very concise version of the Acceptor pattern, without
+ all the extra strategy mechanisms, etc.). These strategies have
+ now been factored out into a new class called
+ ACE_Strategy_Acceptor. The point of these changes is to "keep
+ simple things simple, but enable powerful extensions when
+ necessary." All the test programs that utilized the earlier
+ strategy version of the Acceptor have been updated to the the
+ Strategy_Acceptor instead.
+
+ * libsrc/Connection/Connector: added two new protected methods,
+ connect_svc_handler() and activate_svc_handler(). These methods
+ allow subclasses to override the Connector's strategies for
+ connection establishment and concurrency. In addition, it makes
+ the pattern much easier to explain via the Connector pattern and
+ also is more similar to the Acceptor.
+
+Wed Oct 4 18:45:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Orbix-Examples/Event_Comm: Fixed the examples in this
+ directory so that they compile with the new ACE.
+
+Tue Oct 3 17:33:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/makeinclude/rules.nested.GNU: Added support so that
+ ACE can now be built in parallel using the -jN option of GNU
+ make. To accomplish this, just type
+
+ % make MAKEFLAGS=-j2
+
+ on the command line and the "-j2" flag will be passed through to
+ the make hierarchy. Once the SunC++ compiler supports parallel
+ makes correctly (Template.DB causes problems) this will allow me
+ to tke advantage of my new dual-CPU SPARCstation 20!!!
+
+Mon Oct 2 13:34:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection: Cleaned up some of the code related to
+ Time_Values * by adding a new method call time_value() to the
+ ACE_Synch_Options class.
+
+ * libsrc/Service_Config/Service_Record: Changed things a bit so
+ that we don't have to include "ace/Stream.h" in
+ Service_Record.h, but instead use forward decls of the
+ appropriate types. This breaks a circular dependency that was
+ causing problems for GNU C++. Thanks to John Hutchinson
+ (hutchiso@epi.syr.ge.com) for finding this problem.
+
+Sat Sep 30 13:45:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Changed all uses of typedef PARENT to inherited, which is less
+ obtrusive.
+
+Fri Sep 29 01:33:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc: Completed the new OS class, which will be used
+ shortly to remove all direct UNIX system calls in ACE.
+
+ * libsrc: Completed redocumented the header files for almost all
+ of ACE. The goal was to document all the methods in all the
+ classes. This has most been achieved (only a few minor changes
+ remain). The result is *much* better manual page entires in
+ ./man/man3, as well as much more consistent header files and
+ overall documentation for ACE.
+
+ * libsrc/Reactor/Reactor: Changed all uses of get() to
+ handler_i(). Also changed the check_connections() method to
+ check_handles(). Note that all these changes are invisible to
+ apps...
+
+Thu Sep 28 01:22:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/SPIPE_Addr: Changed all occurrences of
+ {get,set}_user_id() and {get,set}_group_id() to user_id() and
+ group_id() in order to be more consistent with other parts of
+ ACE.
+
+ * libsrc/ASX/Task.C (module): Modified the implementation of
+ several Task helper methods (e.g., sibling()) so that they don't
+ crash if there is not Module associated with the Task.
+
+ * libsrc/ASX/Stream: Removed the sync_ data member from the
+ private part of Stream since it didn't seem to be used for
+ anything.
+
+ * libsrc/ASX/Map_Manager.C (bind): Changed the type of the INT_ID
+ to bind() from INT_ID to const INT_ID &.
+
+ * libsrc/IPC_SAP/Addr/Addr: Moved some methods around in the *.i
+ file to the *.C file in order to be smarter about inlining.
+
+ * libsrc/Misc/Auto_Ptr.h: Added a new pair of classes called
+ "auto_ptr" and "auto_array_ptr". These implement the ANSI/ISO
+ C++ standard auto_ptr mechanism, which helps to write
+ exception-safe code. The code is based on material from Jack
+ Reeves (jack@fx.com) and Dr. Harald M. Mueller
+ (mueller@garwein.hai.siemens.co.at).
+
+ * libsrc/Threads/Synch_T.h (ACE_Null_Condition): Changed the
+ behavior of Null_Condition::{signal,broadcast} so that they
+ return 0 rather than setting errno = ETIME and returning -1.
+
+Wed Sep 27 00:16:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch: Fixed a bug with class ACE_Barrier: count_
+ wasn't being set properly.
+
+ * tests/Threads/test_barrier.C (main): Fixed a stupid bug
+ in the ACE_Barrier -- the main function was exiting, thereby
+ destroying the barrier!
+
+ * tests/IPC_SAP/{SOCK,TLI}_SAP: Added test cases to exercise the
+ new reuse_addr feature of SOCK_Connector and TLI_Connector.
+
+ * libsrc/IPC_SAP/{SOCK,TLI}_SAP/{SOCK,TLI}_Connector: Implemented
+ the new behavior for reusing a local address. Also fixed a few
+ error cases that would have lead to descriptor leaks.
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK.C (open): Modified a few return
+ values and comparisons to ease the transition to WIN32.
+
+ * libsrc/ASX/Task.C (ACE_Task): Changed the behavior of
+ Task::activate() so that it uses the
+ ACE_Service_Config::thr_mgr() Singleton if no thread manager has
+ been associated with a Task when it becomes an active object.
+
+ * libsrc/Service_Configurator/Service_Config: Added a new static
+ method to class Service_Config called thr_mgr(). This static
+ method behaves as a "Singleton" and provides a convenient
+ default thread manager that is available to all threads
+ throughout a process.
+
+ * libsrc/IPC_SAP: Changed all the IPC_SAP/*_SAP/*_Connector.[hiC]
+ files and the Connection/Connector.[Chi] class in order to add
+ "reuse_addr" behavior consistent with the Reactor. This enables
+ the client to specify that the "local_addr" should be reused
+ (e.g., via SOCKREUSEADDR), even if its "2 minute wait" time
+ hasn't elapsed yet. The libsrc/Connection/Connector.[Chi] files
+ were also changed to support this new interface.
+
+ * libsrc/Log_Msg/Log_Msg.C (log): Fixed a mistake in Log_Record
+ caused by the new thread-safe storage enhancement. The data
+ being logged was being rounded up incorrectly. Thanks to Daniel
+ Proulx (daproulx@qc.bell.ca) for reporting this.
+
+ * libsrc/Reactor/Signal.i (operator): Made a minor change to the
+ definition of operator struct sigaction * to work around a bug
+ with the HP/UX C++ compiler (lame, lame, lame)...
+
+ * libsrc/Service_Config: Changed all occurrences of
+ ACE_Service_Config::reactor (which was originally a globally
+ accessible public method of class ACE_Service_Config) to
+ ACE_Service_Config::reactor () (i.e., made the reactor a
+ Singleton implemented by a static method). This was long
+ overdue and will fix all sorts of niggling problems with order
+ of initialization since the reactor() method can do "lazy
+ creation" of Reactors now, i.e., create one the first time it is
+ referenced. In addition, changed the
+ ACE_Service_Config::svc_rep to ACE_Service_Config::svc_rep () in
+ the same manner.
+
+ * Changed all occurrences of the form:
+
+ *_Stream stream;
+ *_Connector con (stream, remote_addr);
+
+ if (stream.get_handle () == ACE::INVALID_HANDLE)
+ ...
+
+ To
+
+ *_Stream stream;
+ *_Connector con;
+
+ if (con.connect (stream, remote_addr) == -1)
+ ...
+
+ which is cleaner and less error prone with respect to
+ UPIPE_Stream (which doesn't have a valid handle once it's
+ connected).
+
+ * Changed all occurrences of get_handle () == -1 to get_handle ()
+ == ACE::INVALID_HANDLE to help smooth the move to WIN32...
+
+ * libsrc: Created a new directory called Shared_Memory and moved
+ the Shared_Malloc_MM and Shared_Malloc_SV classes from the
+ ./Shared_Malloc directory to here, where they are now called
+ Shared_Memory_MM and Shared_Memory_SV. This is a better
+ name/place for them since they never really had anything to do
+ with malloc in the first place! What remains the Shared_Malloc
+ is the Malloc.* and Memory_Pool.* classes, which are typically
+ used for truly shared malloc/free.
+
+ * apps/Gateway/Gateway: added new logic to the Gateway to enable
+ it to specify which local port to bind() to.
+
+Tue Sep 26 21:17:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Strategies.C (open): Added a return 0; at the
+ end of the ACE_Thread_Strategy::open method.
+
+ * tests/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.C:
+ Made CLI_Stream a template so that we don't have to worry about
+ multiple includes of classes...
+
+Mon Sep 25 01:41:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP: Revised the close() method of TLI_SAP and
+ SOCK_SAP so that they don't try to close down a handle that ==
+ ACE::INVALID_HANDLE.
+
+ * Changed all uses of ::free ((char *) ...) to ::free
+ (ACE_MALLOC_T (...)) to work around inconsistent prototype
+ problems with some compilers.
+
+ * include/ace/sysincludes.h: Changed ACE_MALLOC_TYPE to
+ ACE_MALLOC_T which is a bit less verbose...
+
+ * libsrc/Service_Configurator/Makefile (BUILD): Fixed the argument
+ to sed from -s (which is invalid) to -e (which is valid).
+ Thanks to Doug Ritter (dougr@guilder.datalytics.com) for
+ noticing this. Also used sed to do a more elegant fix on the
+ age-old problem of inconsistent prototypes for free() and
+ realloc()...
+
+ * libsrc/IPC_SAP/UPIPE_SAP: Rewrote all the UPIPE_* classes to
+ remove any dependencies on class UPIPE. This class appears to
+ be unnecessary since it mimics the behavior of class SPIPE. To
+ simplify the behavior of the UPIPE_* classes, they now inherit
+ from the SPIPE_* classes where appropriate.
+
+ * libsrc/IPC_SAP/UPIPE_SAP: Changed the semantics of the
+ UPIPE_Connector and UPIPE_Acceptor connection methods so that
+ they close down the SPIPE_Stream after a connection is
+ established successfully. This is important to conserve
+ descriptors.
+
+ * libsrc/Misc: Created a new class called OS, which encapsulates
+ *all* of the UNIX system calls and library routines within a
+ single class. The rest of ACE will program only to the methods
+ in this interface, which will make it much easier to port to
+ other versions of UNIX (and WIN32!).
+
+Sun Sep 24 11:49:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SOCK_SAP: Conditionally compile the LSOCK_* stuff
+ if the OS platform (e.g., Linux) doesn't support it.
+
+ * Changed all occurrences of ACE_HAS_NO_... to ACE_LACKS_... in
+ all the config*.h files and the headers/source. This reads
+ better...
+
+ * Changed all uses of (1) Acceptor::peer_acceptor_ to
+ Acceptor::acceptor(), (2) Svc_Handler::peer_ to
+ Svc_Handler::peer(), and (3) Connector::peer_connector_ to
+ Connector::connector() to make the code more abstract and
+ resilient to future changes.
+
+ * include/ace/sysincludes.h: Added a new macro called
+ ACE_NEW_RETURN that provides a useful abstraction for
+ expressions involving operator new since we can change memory
+ allocation error handling policies (e.g., depending on whether
+ ANSI/ISO exception handling semantics are being used).
+
+ * libsrc/Threads/Thread.C: Changed things a bit so that if
+ ACE_MT_SAFE == 0 then Thread::self() returns 1, regardless of
+ whether the platform supports threads.
+
+ * Went through the entire library and (hopefully) made sure that
+ all calls to global system calls and library routines are
+ prefixed with "::".
+
+ * libsrc/Misc/Get_Opt.C: Changed this class to use the Log_Msg
+ logging mechanism rather than stderr...
+
+ * tests/Misc: Added a new test program to test the Profile_Timer.
+
+ * tests/Reactor/misc: Added a new test program to test the
+ Handle_Set.
+
+ * libsrc/Service_Configurator: Changed the error messages in
+ Svc_Conf.y and Svc_Conf.l to go to the ACE Log_Msg logging
+ mechanism rather than stderr...
+
+ * libsrc/Connection/Acceptor: Modified the Acceptor and
+ Oneshot_Acceptor classes so that they take advantage of the new
+ ACE_Creation_Strategy, ACE_Accept_Strategy, and
+ ACE_Concurrency_Strategy components. This will make is easy to
+ define Acceptors that can be flexibly configured to use various
+ creation strategies (e.g., dynamic linking, singletons, dynamic
+ memory creation, etc.) for making Svc_Handlers.
+
+ * libsrc/Connection/Svc_Handler: Added several new classes --
+ ACE_Creation_Strategy, ACE_Accept_Strategy, and
+ ACE_Concurrency_Strategy -- that form the heart of the new
+ ACE_Acceptor implementation. These classes define the creation,
+ passive connection acceptance, and concurrency strategies
+ employed by the Acceptor factory when it receives a connection
+ from a client.
+
+ * libsrc/Connection/Acceptor: Modified the implementation of the
+ Acceptor and the Oneshot_Acceptor. These classes are no longer
+ related by inheritance since they behave in fundamentally
+ different ways and sharing code was making it hard to write and
+ use these classes correctly.
+
+ * libsrc/Misc/Misc: Moved the enum INVALID_HANDLE from IPC_SAP.h
+ to Misc.h since this is actually more general than just the
+ sockets stuff and we need to be portable to WIN32... Therefore,
+ any code that originally said ACE_IPC_SAP::INVALID_HANDLE should
+ now be ACE::INVALID_HANDLE.
+
+ * Removed the ACE_OMIT_SERVICE_CONFIGURATOR flags. These are
+ annoying -- anyone who wants to subset ACE should be responsible
+ for doing this stuff.
+
+Fri Sep 22 22:36:33 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Spawn.C: Greatly simplified the
+ implementation of Thread_Spawn by leveraging the new class Task
+ semantics for activate(). Now, all the concurrency activation
+ mechanisms necessary to create active objects are associated
+ with a Task and all the Thread_Spawn needs to do is to define a
+ new make_svc_handler() Factory Method to create a SVC_HANDLER
+ and activate it!
+
+ * libsrc/ASX/Task.C: Tightened up the semantics of Task::activate
+ (which turns a passive object into an active object, i.e., one
+ with its own thread). Now, if an object is activated more than
+ once it ignores the other requests, unless the force_active
+ parameter is enabled. Moreover, activate() now takes a
+ parameter that indicates the number of threads to allocate for
+ the Task. This makes it simple to have a "thread pool"
+ associated with a Task.
+
+Thu Sep 21 00:49:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/Connection: Updated the CPP-acceptor and CPP-connector to
+ use the underlying Acceptor and Connector patterns more
+ robustly. Also added new hooks to include a Service_Config
+ component so that integrating this with the ACE dynamic linking
+ scheme will be a snap!
+
+ * libsrc/Connection/Acceptor.C: Revised the Oneshot_Acceptor to be
+ robust in situations where it isn't given a Reactor *...
+
+ * apps/Logger: Fixed a couple of minor problems with *.i files
+ being included when __INLINE__ is set. This should help G++
+ compiler ACE better...
+
+ * libsrc/Reactor/Reactor: Enhanced the Reactor::notify() method so
+ that it takes both an Event_Hander * and a Reactor_Mask, which
+ it passes to the Reactor's main event loop thread via the pipe.
+ The event loop thread uses this mask to determine which method
+ to invoke. This new feature is due to the insight of Karl-Heinz
+ Dorn (kdorn@erlh.siemens.de).
+
+ * libsrc/Connection/Connector: Fixed a braino in
+ Connector::handle_output, which was using ::getpeername() to
+ check whether a connection has been established with a peer.
+ Naturally, this only works for sockets, and doesn't work at all
+ for TLI or SPIPEs...
+
+ * libsrc/IPC_SAP/Addr/SPIPE_Addr.C (set): Changed the return type
+ of this method to "int" in order to conform to the types
+ expected by the Acceptor/Connector patterns.
+
+ * Removed all uses of the global scope "::" for all variables and
+ methods that are not UNIX system calls or library calls in
+ preparation to change over to the new OS class (requested by
+ Siemens).
+
+Wed Sep 20 14:39:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SPIPE_SAP: Renamed the SPIPE_IO classes to
+ SPIPE_Stream to be consistent with the other parts of the ACE
+ library. Updated all parts of the library to reflect this
+ change.
+
+ * tests/Service_Configurator: Moved the current contents of this
+ directory into a new directory called IPC-tests. Created a new
+ directory called Connection-tests where the dynamic linking
+ examples for Siemens will go.
+
+ * libsrc/Reactor/Signal: Made a bunch of minor changes to support
+ signal handling on SunOS 4.x platforms. Thanks to Aniruddha
+ Gokhale <gokhale@cs.wustl.edu> for help with this.
+
+ * libsrc/Threads/Synch.h: Modified the #ifdefs a bit so that
+ Synch_T.h gets included regardless of whether ACE_HAS_THREADS.
+
+ * libsrc/Threads/Synch_Options: Added a new set() method to make
+ it possible to initialize the Synch_Options from outside the
+ constructor.
+
+ * libsrc/Connection/Svc_Handler.C: Added checks within the
+ ACE_Svc_Handler so that if we are given a NULL Reactor we don't
+ crash!
+
+ * libsrc/Mem_Map: Tidied up this class and added comments to the
+ header so that the class2man has something to generate manual
+ pages from!
+
+ * libsrc/Misc/Misc: Added a new method called "round_to_pagesize",
+ which was previously in Mem_Map. This is a better place for it
+ since other parts of ACE (e.g., Shared_Memory) use it.
+
+ * libsrc/Misc/Misc: Added a new method called "get_file_size",
+ which was previously in Mem_Map. This is a better place for it
+ since other parts of ACE might want to use it.
+
+Tue Sep 19 00:24:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released a beta version of ACE 3.3.1 for G++ testing.
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram.C: Removed a stray INLINE
+ that was causing problems for G++. Thanks to E. Jason Scheck
+ <jasons@ims.com> for reporting this.
+
+ * libsrc/IPC_SAP/Addr/INET_Addr: Improved the documentation for
+ this class and also added new semantics to the constructor and
+ set() method so that a "ip_addr:port_number" tuple can be given
+ as a single string (e.g., "1234:tango.cs.wustl.edu" or
+ "1234:128.252.166.57"). This is useful since it gives a uniform
+ interface for addressing for Internet domain, UNIX domain, and
+ SPIPE domain addresses... Updated the ./tests/Connection tests
+ to use this form (which is nice since now they are all very
+ orthogonal!)
+
+ * tests/Connection: Created a whole new suite of tests that
+ exercise the connection patterns for all of the relevant IPC
+ mechanisms (e.g., SOCK_SAP, TLI_SAP, SPIPE_SAP, and UPIPE_SAP).
+
+ * bin/clone.C: fixed the first #include so that it uses #include
+ "ace/sysincludes.h". Thanks to Alex V Maclinvosky
+ <alexm@teltrunk1.tait.co.nz> for noticing this.
+
+Mon Sep 18 01:52:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX/Message_Queue.C (close): Fixed yet another problem
+ with variables being defined in for loops. G++ is good for
+ detecting this ;-).
+
+ * libsrc/Threads: Moved all the template classes from Synch.* into
+ Synch_T.* in order to make it possible to compile templates with
+ G++. Thanks to E. Jason Scheck <jasons@ims.com> for suggesting
+ this.
+
+ * libsrc/IPC_SAP/UPIPE_SAP: Make a number of changes to ensure
+ that all the UPIPE_SAP classes conform to the same interface as
+ all the other ACE IPC classes.
+
+ * Changed all occurrences of THR_FUNC to ACE_THR_FUNC to protect
+ the global namespace better.
+
+Sun Sep 17 13:36:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/ASX/Message_Queue: Fixed a typo in these test programs
+ that caused a segfault since a vararg parameter was omitted on a
+ call to the Log_Msg::log() method. Maybe iostreams isn't so bad
+ after all... ;-)
+
+ * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: fixed
+ a stupid error that was caused by some mods I made after ECOOP
+ to update the threaded logging server. When I changed the
+ Thr_Logging_Acceptor so that it no longer inherited from the
+ Logging_Acceptor I forgot to redefine the init() method...
+
+ * man: Totally regenerated the ACE manual pages using the new
+ versions of the OSE tools provided by Karl-Heinz Dorn
+ (kdorn@erlh.siemens.de).
+
+ * Changed all occurrences of MT_SYNCH and NULL_SYNCH to
+ ACE_MT_SYNCH and ACE_NULL_SYNCH, respectively. This is
+ consistent with the ACE naming conventions and had been an
+ oversight when I renamed everything earlier.
+
+ * Fully built and tested ACE with the __INLINE__ flag enabled.
+ This will generate code with many small methods in the library
+ inlined. Had to fix a bunch of minor things to allow this to
+ work without compilation-order dependency problems.
+
+ * libsrc: Made a bunch of changes to the way that header files are
+ included internally to ACE in order to break compilation-order
+ dependencies. This is necessary to support GNU G++'s lame
+ handling of templates. None of this stuff should affect
+ application code.
+
+ * tests: Added a whole new slew of tests for the remaining parts
+ of ACE that weren't currently included in ./tests. This stuff
+ exercises ACE components like the Log_Msg logger and factors all
+ the #if defined (DEBUGGING) code out of the ./libsrc directory
+ tree and puts it in the ./tests directory tree, where it
+ belongs.
+
+ * Changed all uses of the error macros LM_* to ACE_* in order to
+ avoid name collisions with other libraries, frameworks, and
+ toolkits. In addition, changed all uses of the error enumerals
+ LOG_ to LM_ in order to avoid a conflict with system #defines in
+ <sys/syslog.h>.
+
+ In order to change these automatically, I used the following
+ UNIX command sequence:
+
+ % find . -type f -print | xargs perl -p -i -e 's/LM_/ACE_/g'
+ % find . -type f -print | xargs perl -p -i -e 's/LOG_/LM_/g'
+
+Sat Sep 16 11:55:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * tests/Threads: Added a new test for Thread_Specific storage.
+
+ * Added a new platform/compiler configuration flag called
+ ACE_TEMPLATES_REQUIRE_SOURCE that must be set for compilers
+ (e.g., GNU G++) whose template mechanism must be able to
+ see the source code (i.e., the *.C files). Changed *lots* of
+ header files to enable this... Also had to change the
+ corresponding *.C files so that they wouldn't get included
+ twice...
+
+ * libsrc/Connection: redid the implementation of Acceptor,
+ Connector, and Svc_Handler to get more control over the scope of
+ #defines like #define SH SVC_HANDLER, etc.
+
+ * libsrc/Threads/Thread_Spawn: Totally redid the implementation of
+ Thread_Spawn to use the Acceptor class template. This greatly
+ reduces the amount of code to implement the Thread_Spawn!
+
+ * libsrc/Threads/Thread_Spawn: Moved the Thread_Spawn
+ implementation into the ./libsrc/Threads directory rather than
+ in the ./libsrc/Service_Configurator directory since it deals
+ with threading and thus belongs in the other place.
+
+Fri Sep 15 00:25:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Token.i (tryacquire): Added a cast to fix passing
+ a const pointer to a function that was expecting a non-const.
+ Thanks to E. Jason Scheck <jasons@ims.com> for reporting this.
+
+ * libsrc: Added a bunch of changes to enable G++ to compile ACE.
+ A lot of this involves moving around info in header files so
+ that templates can be dealt with using the relatively lame GNU
+ C++ repository scheme. Thanks to E. Jason Scheck
+ <jasons@ims.com> for all his help in this.
+
+ * libsrc/Synch: created Synch_Options.C out of Svc_Handler.C, so
+ that Svc_Handler.C could be "template pure"; all the other files
+ were already separated. Thanks to E. Jason Scheck
+ <jasons@ims.com> for recommending this.
+
+ * Makefile (clone): Added a tiny fix that solves a weird problem
+ that arises with symbolic links on HP/UX. Thanks to Jam Hamidi
+ (jh1@osi.com) for tips on how to fix this.
+
+Thu Sep 14 10:55:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Gateway/Gateway/Channel.C (route_message): Updated the main
+ routing code to check for whether a channel is_active()
+ (i.e., is actually connected) before trying to send messages
+ to it. This was originally done in the Set class iterator, but
+ I revised that to make it more reuseable and to workaround bugs
+ in the HP/UX compiler so I had to update the main code...
+
+ * libsrc/Threads/Thread_Specific: Added a new method to called
+ ts_object () to class ACE_Thread_Specific that get the
+ thread-specific object for the key associated with this object.
+ Returns 0 if the data has never been initialized, otherwise
+ returns a pointer to the data. This is useful since now you can
+ query a thread-specific storage mechanism to see if there's ever
+ been a thread-specific object created *without* having to
+ actually create one if one hasn't been created yet! Thanks to
+ Detlef Becker (beckerd@erlh.siemens.de) for pointing this out.
+
+ * include/makeinclude/platform_sunos5_sunc++_orbix.GNU (LIBS):
+ Changed the default compilation strategy for SunOS 5.x machines
+ to use -mt. This seems to be necessary to build robust
+ libraries that are thread-safe. Thanks to Phil Mesnier
+ <phil@yakko.envision.com> and Chris Cleeland
+ <chris@envision.com> for hounding me until I changed the
+ existing solution. If you *don't* want this behavior you need
+ to remove -mt from the platform_macros.GNU file and and remove
+ the ACE_HAS_THREADS and ACE_MT_SAFE flags, etc. from the
+ config-sunos5.*.h files.
+
+ * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool): Added
+ a new parameter to the constructor called write_each_page that
+ if enabled forces a write to each page to ensure that space is
+ allocated from the file system (otherwise, we can end up failing
+ due to optimisitic resource allocation...). Thanks to Phil
+ Brooks <phil_brooks@mentorg.com> for detecting this issue and
+ implementing a solution.
+
+ * include/ace/sysincludes.h: Added #ifdef support for HP/UX, which
+ fails to properly wrap <sys/mman.h> with an extern "C" block.
+
+Mon Sep 11 01:39:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Connector.C (handle_input): Changed the call
+ to Svc_Handler::close() to accept the default value of 0 rather
+ than -1... Thanks to Mark Seaborn
+ <mseaborn@itthp1.comm.mot.com> for noticing this.
+
+ * libsrc/Connection: Changed all uses of ADDR to PEER_ADDR to
+ avoid a name clash in Linux... Thanks to James Morris
+ <jmorris@aurora.apana.org.au> for finding this.
+
+Sun Sep 10 03:56:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Synch: Added support for "barrier
+ synchronization" to ACE in the form of ACE_Barrier. Thanks to
+ Bruce Worden (bruce@betsy.gps.caltech.edu) for suggesting this
+ and pointing me in the right direction.
+
+ * tests/Threads: Added a test for the new barrier synchronization
+ mechanism.
+
+Sat Sep 9 11:58:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor: Changed Reactor::max to Reactor::max3 to
+ avoid problems with conflicting names of macros in Sun header
+ files!
+
+Mon Sep 4 14:34:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Signal: The new ACE_Signal_Handlers mechanism
+ appears to be working! There's a test in ./tests/Reactor/misc
+ called test-signal.C that illustrates how all this works.
+
+ * libsrc/Reactor/Signal: Added several new methods to
+ ACE_Sig_Action to make life easier to implement the new
+ ACE_Signal_Handler code...
+
+ * libsrc/Reactor/Signal.C (ACE_Sig_Action): Changed the order of
+ the arguments to the ACE_Sig_Action constructor. It's almost
+ always the case that you want to vary the SignalHandler, but
+ only rarely do you want to vary the mask or flags. By
+ reordering this, it's easier to get the correct default values
+ without adding extra junk...
+
+Mon Sep 4 01:11:29 1995 Tim Harrison (harrison@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Multicast: added support to
+ allow a port to be reused for multicast sockets. This is useful
+ if you are multicasting to multiple processes, some of which are
+ on the same host!
+
+ * libsrc/ASX/Map_Manager: Fixed an odd bug that must have gone
+ undetected for a long time somehow. Basically, the "is_free_"
+ field of the ACE_Search_Structure struct was never being set to
+ it's correct initial value of 1. I don't know how this didn't
+ surface before... At any rate, it is fixed now...
+
+ * include/ace/sysincludes.h: Changed the inline methods for
+ SET'ing and CLR'ing bits to be macros in order to get cheap
+ polymorphic behavior... Also changed them to use the prefix
+ "ACE_" to avoid namespace pollution. Changed all dependencies
+ in the source code (only a few...).
+
+ * libsrc/Reactor/Signal: Added a new class called
+ ACE_Signal_Handlers, which subclasses from ACE_Signal_Handler.
+ This new class implements the semantics required for Siemens.
+ For example, this class allows multiple signal handlers to be
+ registered for the same signal. It also makes SA_RESTART the
+ default mode. Note that by default, the Reactor uses the
+ original ACE_Signal_Handler semantics. If you want the new
+ semantics, simply pass the Reactor a pointer to
+ ACE_Signal_Handlers.
+
+ * include/ace/sysincludes.h: Removed the automatic inclusion of
+ ./libsrc/Misc/Misc.h from sysincludes.h since this was causing
+ problems with include file ordering.
+
+Sun Sep 3 00:22:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Signal.C (remove_handler): Moved a definition of
+ ACE_Sig_Action out of an inner block to avoid portability
+ problems.
+
+ * libsrc/ASX/Map_Manager: Improved the documentation of this class
+ and fixed up a couple of problems with the scope of loop
+ indexes.
+
+ * libsrc/Misc/{Stack,Set}: Added this new file that contains a set
+ of Stack and Unordered Set implementations. The Unordered Set
+ is used in various places in ACE (e.g., libsrc/Reactor/Signal
+ and apps/Gateway/Gateway/Routing_Entry).
+
+ * libsrc/Log_Msg/Log_Msg: Moved the definition and declaration of
+ Thread_Specific<Log_Msg> ace_log_msg from this directory to
+ ./libsrc/Misc/Misc.h in order to cleanup the namespace and also
+ to help make this work on DEC platforms...
+
+ * libsrc/Reactor/Signal: Changed ACE_Signal_Handler from a static
+ class to a non-static class in order to allow subclassing. This
+ is necessary to support the Siemens requirements.
+
+ * libsrc/Shared_Malloc/Memory_Pool: Modified ACE_MMAP_Memory_Pool
+ so that it no longer stores the name of the backing store in a
+ static character array (which made it impossible to have more
+ than one of these at a time...). The new version stores the
+ name in each ACE_MMAP_Memory_Pool object. It also selects a
+ name that won't conflict with other names by using ::mktemp.
+
+ * tests/Shared_Malloc/test_malloc.C (parse_args): Fixed two stupid
+ omissions of "break" when parsing command-line arguments. Isn't
+ C++ great?! (NOT)...
+
+ * apps/Synch-Benchmarks: Came up with a killer solution to the
+ nagging problem of POSIX Pthread's lack of an integral thread id
+ (a la Solaris threads thr_self()). The solution leverages off
+ of our new ACE_Thread_Specific wrapper to provide the necessary
+ functionality. Thanks to Reginald S. Perry (perry@zso.dec.com)
+ for triggering the thoughts that lead to this solution...
+
+Sat Sep 2 17:00:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/TLI_SAP/TLI_Acceptor: Changed the implementation
+ of ACE_TLI_Acceptor so that ACE_TLI_Request is defined inside
+ the TLI_Acceptor.C file (this is the so-called "Cheshire Cat"
+ technique). This clean up the code and the global namespace a
+ bit.
+
+Fri Sep 1 00:53:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released new version of ACE 3.3
+
+ * libsrc/IPC_SAP/UPIPE_SAP/UPIPE.C: Fixed a small problem with
+ failing to #ifdef this file correctly if we don't have
+ threads... Thanks to John Morey (jmorey@hitel.com) for
+ reporting this.
+
+ * tests/ASX/CCM_App/svc.conf: Fixed the svc.conf file so that it
+ looked in the .shobj directory rather than the .obj directory.
+
+ * Released new version of ACE 3.2.9...
+
+ * libsrc/Log_Msg/Log_Msg: Added a new field called "restart_" to
+ the thread-specific storage. This will be used to control
+ whether system calls are restarted when interrupted.
+
+ * Changed inheritance syntax from
+
+ class xxx
+ : public yyyy
+ {
+ };
+
+ to
+
+ class xxx : public yyyy
+ {
+ };
+
+ so that the OSE tools would work correctly.
+
+Thu Aug 31 00:12:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/UPIPE_SAP: Changed all uses of UPIPE_Addr to
+ SPIPE_Addr since they were the same thing. This also allows
+ much reuse of code...
+
+ * libsrc/IPC_SAP/{TLI_SAP,SOCK_SAP,SPIPE_SAP}: fixed the
+ "complete" method for these classes so that it uses the new
+ ACE::handle_timed_complete() method in libsrc/Misc. This cleans
+ up the code by merging common logic.
+
+ * libsrc/IPC_SAP/{DEV_SAP,FILE_SAP,SPIPE_SAP}: fixed the "connect"
+ method for these classes to conform to the API used by the
+ SOCK_SAP and TLI_SAP wrappers. In addition, cleaned up the code
+ so that common logic was pushed into a new method in libsrc/Misc
+ called ACE::handle_timed_connect().
+
+Wed Aug 30 00:20:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Acceptor.C (open): Fixed this method so that
+ it returns a value on all paths through the code...
+
+ * libsrc/IPC_SAP/TLI_SAP/TLI.C (ACE_TLI): Moved the option
+ allocation code from the TLI::open() method into the TLI
+ constructor in order to make sure it is always called!
+
+ * libsrc/IPC_SAP/DEV_SAP/DEV_Connector: Changed the signature of
+ the DEV_Connector::connect method to allow users to specify
+ flags, permissions, and timeouts (this is now consistent with
+ other parts of ACE).
+
+ * libsrc/IPC_SAP/FILE_SAP/FILE_Connector: Changed the signature of
+ the FILE_Connector::connect method to allow users to specify
+ flags, permissions, and timeouts (this is now consistent with
+ other parts of ACE).
+
+ * tests/IPC_SAP/TLI_SAP: Updated the test code to check the new
+ timer support for connection establishment.
+
+ * libsrc/IPC_SAP/TLI_SAP: Updated the code to make it conform to
+ the interfaces provided by SOCK_SAP. This primarily affected
+ the TLI_Acceptor and TLI_Connector classes in order to add
+ support for timed connects and accepts.
+
+ * libsrc/Reactor/Signal.C: Modified Signal_Handler::dispatch so
+ that it saves/restores errno to prevent it from being corrupted
+ by the handle_signal callback. Thanks to Detlef for suggesting
+ this.
+
+ * libsrc/Shared_Malloc/Memory_Pool: Changed the name of
+ ACE_Local_Memory_Pool to ACE_Sbrk_Memory_Pool. Then added a new
+ version of ACE_Local_Memory_Pool that uses the C++ operator new
+ to acquire chunks of memory. This enables the ACE Malloc class
+ to integrate with existing programs that use new/delete. Thanks
+ to Karlheinz for suggesting this.
+
+ * libsrc/IPC_SAP: Added the UPIPE mechanism donated by SIEMENS.
+ This provides an intra-process IPC mechanism that has the same
+ API as the interprocess and network mechanisms.
+
+ * Reran catman on ./man/windex. Thanks to Dieter Quehl
+ (quehl@csaserv.erlh.siemens.de) for reporting the need for this.
+
+ * Released new version of ACE 3.2.9...
+
+ * tests: Fixed a bunch of minor problems that occurred when
+ building on HP/UX. Thanks to John Morey
+ (jmorey@hitel.com) for reporting these.
+
+ * apps/Gateway/Gateway/Peer_Message.h: Changed the default values
+ of the parameters to Peer_Addr so they aren't trying to assign
+ negative values to unsigned chars! Thanks to John Morey
+ (jmorey@hitel.com) for noticing this...
+
+Tue Aug 29 18:52:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Thread/Thread_Specific: Changed the constructor so
+ that it will take an initial TYPE *, which will be used to
+ initialize the thread-specific object. This is necessary to
+ support the changes to ACE_Task described in the following
+ bullet.
+
+ * libsrc/ASX/Task: Added a new class called ACE_Task_Exit to
+ Task.C. This class is used in conjunction with
+ ACE_Thread_Specific to keep exit information for a Task in
+ thread-specific storage. This ensures that the Task::close()
+ method will get called no matter how the thread exits (e.g., via
+ Thread::exit() or by "falling off the end of Task::svc_run").
+
+Mon Aug 28 09:54:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released new version of ACE 3.2.9...
+
+ * libsrc/Reactor/Handle_Set.C: changed the type of MSB_MASK from
+ u_long to ACE_UINT32 to handle problems with the Alpha's 64 bit
+ longs...
+
+ * libsrc/Threads/Thread_Specific: Continued to try and get this
+ class to build correctly on other platforms... I think I've
+ just about got it working right now...
+
+ * libsrc/IPC_SAP/IO_SAP/IO_SAP: Added installation flags that
+ indicate whether the platform has terminal ioctl flags like
+ TCGETS and TCSETS. I know that SunOS 5.x has these, but I'm not
+ sure about other platforms...
+
+Sat Aug 26 13:55:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released new version of ACE 3.2.9...
+
+Fri Aug 25 09:05:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Specific.h: Fixed a typo that was causing
+ this file to fail on HP/UX. Thanks to Neil Cohen
+ (nbc@metsci.com) for finding this!
+
+ * libsrc/IPC_SAP/DEV_SAP/DEV_IO: Added conditional support for
+ getmsg/putmsg calls in the DEV_IO class. This will make things
+ work correctly for platforms that don't support SVR4 STREAM
+ pipes.
+
+ * libsrc/IPC_SAP/FILE_SAP/FILE_IO: Added the same fixes to FILE_IO
+ that I added to DEV_IO...
+
+ * include/ace/sysincludes.h (MAXNAMELEN): Fixed a typo in
+ sysincludes.h that caused problems for the G++ compiler.
+
+ * libsrc/Connection/Acceptor.C (handle_close): Removed a
+ diagnostic message that was getting printed if a
+ Oneshot_Acceptor had already been removed from the reactor (it's
+ ok for this call to fail). Thanks to Irfan Pyarali
+ (ip1@cec.wustl.edu) for noticing this!
+
+ * libsrc/ASX/Task.C (ACE_Task): Fixed a bug in the constructor
+ that prevented a Message_Queue from being allocated
+ automagically.
+
+Thu Aug 24 16:47:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/ace/sysincludes.h: added support for 64 bit machines so
+ that Internet addresses are 32 bits, as they must be!
+
+ * libsrc/Shared_Malloc/Malloc: Changed things so that MALLOC_STATS
+ is now *off* by default... (also changed the name to
+ ACE_MALLOC_STATS).
+
+Wed Aug 23 15:21:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/ace/config-osf1.h: Added support for thread-specific
+ storage. Please let me know if this breaks on OSF/1!
+
+ * libsrc/Threads/Thread: Added support for the thread-specific
+ storage wrappers for both Pthreads and Solaris threads. Also,
+ rearranged some of the code to emphasize similarities between
+ Pthreads and Solaris threads.
+
+ * libsrc/Threads/Thread_Specific: Updated this to remove "static"
+ from all the data members in this class since those should be
+ specific to an *instance* rather than to an instantiation of the
+ particular template class. Tim claims this works...
+
+ * libsrc/Threads/Token.C: Fixed a couple of typos that misspelled
+ "assert" (jaysus...). Thanks to David Trumble
+ (trumble@cvg.enet.dec.com) for noticing this.
+
+ * libsrc/Threads/Token.C (release): Fixed a very stupid bug that
+ was causing the Token never to become "unused"... No excuses
+ for this, except that Pthreads is partly responsible ;-)
+
+Tue Aug 22 11:36:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX/Task: Changed the behavior of task so that it doesn't
+ try to delete the Message_Queue or Thread_Manager if it didn't
+ allocate them! Thanks to Karl-Heinz Dorn
+ (kdorn@erlh.siemens.de) for suggesting this fix.
+
+ * libsrc/ASX/Message_Block: Changed the semantics for
+ Message_Block::end() so that it returns a pointer to 1 past the
+ end of the data. This is more consistent with toolkits like
+ STL. Also changed the behavior of Message_Block::copy() so that
+ it checks to make sure the data will fit in its buffer.
+
+ * tests and apps: Revised a bunch of files to add #ifdef so that
+ TLI tests and apps are not compiled if the platform doesn't
+ support it...
+
+ * Fixed a bunch of minor problems for HP/UX (which lacks TLI and
+ other common OS features). Thanks to Mark Seaborn
+ (mseaborn@itthp1.comm.mot.com) for noticing these.
+
+Mon Aug 21 00:19:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc: Changed the name of the class Argument_Vector to
+ ACE_ARGV. This is a bit more concise... UNIX programmer will
+ know precisely what argv is...
+
+ * Updated all of ACE to use the new naming scheme, which prepends
+ all ACE classes with "ACE_". This is an important change since
+ it prevents ACE from polluting the namespace of applications
+ (unless they also prefix "ACE_" in front of their classes, which
+ is not very likely!).
+
+ Since this change basically affects every single file in the
+ entire release, as well as all existing user code I've written a
+ perl script called "rename-ace.pl" to automate all of this.
+ This script is in $WRAPPER_ROOT/bin. To use it, simply type:
+
+ % find . -type f -print | egrep '[Chi]$' | xargs rename-ace.pl
+
+ Note that you will need to change the first line of
+ rename-ace.pl to point it to whereever perl is located on your
+ system.
+
+ I've tested this on the entire ACE source code base and it seems
+ to work fine. Please be careful using it on your code, however,
+ since it may conflict with names that you use. When in doubt,
+ remove the '-pi' from the first line of the rename-ace.pl perl
+ script and replace it with '-p' (which is non-destructive).
+ Then run the commands above and check the output carefully.
+ When you're convinced that everything is ok, add the '-pi' back
+ again. Let me know immediately if you find any problems with
+ this scheme!
+
+ * libsrc/Connection/Acceptor.C: Added a virtual destructor to the
+ Oneshot_Acceptor to make sure that descriptors are closed down
+ correctly. Thanks to Irfan (irfan@wuerl.wustl.edu) for
+ suggesting this.
+
+ * libsrc: Change all occurrences of Shared_Memory to
+ SV_Shared_Memory to firmly indicate the origins of this
+ wrapper...
+
+Sun Aug 20 23:12:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP: added the IO_SAP, DEV_SAP, and FILE_SAP
+ components donated by SIEMENS to the ACE release.
+
+ * libsrc/ASX: Split the Message_Queue.* files into Message_Block.*
+ and Message_Queue.* in anticipation of the Windows NT port...
+
+Fri Aug 18 13:54:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Specific: Move the operator->()
+ method back into the *.C file in order to make HP/UX
+ happy...
+
+ * apps/Gateway/Peer: Removed the Options.* files since they
+ weren't being used and they were causing problems on OSF/1...
+
+ * libsrc/Misc/Profile_Timer: Factored common code together by
+ making a new typedef called Rusage that defaults to either
+ struct rusage or prusage_t, depending on installation flags.
+ Fixed a couple places in the code that were depending on the
+ prusage_t type (which is now the Profile_Timer::Rusage type...).
+
+Thu Aug 17 14:31:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Connector.h: Changed some typedefs in order to
+ keep the Centerline compiler from crapping out. I can't
+ *believe* how screwed up that compiler is when it comes to
+ templates...
+
+ * Released new version of ACE 3.2.9...
+
+ * libsrc/Threads/Synch: Fixed a bunch of typos that showed up
+ on OSF/1. Also tried to fix some other problems by removing
+ "const" from all the methods...
+
+Wed Aug 16 22:26:24 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Thread_Specific.h: Fixed another stupid bug
+ caused by a braino that failed to unconditionally include
+ Thread_Specific.i. Stuart Powell found this also... (thanks!).
+
+ * libsrc/Threads/Thread_Specific.h: In Thread_Specific.h the
+ inlining macros were only included if threads were used. This
+ obviously didn't work for people without threads... I
+ moved the #endif for ACE_HAS_THREADS... back before the #ifdef
+ __INLINE__ stuff (e.g. to line 71). Thanks to Stuart Powell
+ (stuartp@ot.com.au) for suggesting this.
+
+ * libsrc/Threads/Synch.h: Fixed a typo that manifested itself for
+ pthreads: Condition count_nonzero_ should obviously be
+ Condition<Mutex> count_nonzero_. Thanks to Rob Clairmont
+ (rclairmo@bnr.ca) for reporting this.
+
+Tue Aug 15 00:31:44 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Log_Msg/Log_Msg.C (log): Fixed a stupid typo (*format++
+ should have been format++...).
+
+ * libsrc/Misc/Trace.h: Move the class TSS_Int from within class
+ Trace to file scope and changed the name to ACE_TSS_Int to
+ handle problems with the HP/UX compiler.
+
+ * include/ace/sysincludes.h: Added the word "struct" in front
+ of rusage to make things work on HP/UX. Thanks to Neil Cohen
+ (nbc@metsci.com) for reporting this fix.
+
+ * apps/TokenServer/server/TokenMap.C: Fixed yet another problem
+ with scope of variables defined in for loops...
+
+ * Released new version of ACE 3.2.9...
+
+ * libsrc/Connector: Fixed a braino whereby I didn't use consistent
+ naming for my #defines (PA should have been PRC). Thanks to
+ Alex (alexey@ace.elektra.ru) for noticing this.
+
+Mon Aug 14 18:13:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SPIPE_Acceptor: Modified the interface of open()
+ and accept() so they would conform to the SOCK_Acceptor and
+ TLI_Acceptor. This makes it possible to use SPIPE_Acceptor in
+ similar situations (e.g., Acceptor and Connector patterns).
+
+ * libsrc/ASX/Stream: Fix a bug that occurred when trying to dump()
+ a linked Stream.
+
+ * libsrc/Connection/Acceptor: Moved the body of the init() method
+ out of this class since it was unnecessarily dependent on the
+ INET_Addr domain addressing types. This required changes to the
+ ./apps and ./tests directory in order to add the init() method
+ to classes that used the default behavior.
+
+ * libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Acceptor.C: Fixed close() so that
+ it will call fdetach(2) *before* closing down the descriptor. I
+ hope this will fix a problem noticed by people at SIEMENS.
+
+ * tests/ASX/Event_Server/Event_Server/Options: Fixed a problem
+ with the default port numbers (they weren't using the values
+ from ./include/ace/testconfig.h).
+
+ * include/ace/sysincludes.h (MAXNAMELEN): If MAXNAMELEN is not
+ defined by a platform then ACE sets it to be FILENAME_MAX,
+ which should be defined in stdio.h. Thanks to Todd Blanchard
+ (tblancha@evolving.com) for this suggestion.
+
+Sun Aug 13 17:02:57 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Service_Configurator/Parse_Node: Changed the name of
+ Function_Node::symbol (const void *) so that it won't give
+ those annoying warnings anymore...
+
+ * libsrc/Reactor/Handle_Set: Moved the definition of MSB_MASK from
+ the header file into a static const within the .C file in order
+ to avoid overflow problems on certain compilers.
+
+ * libsrc/Threads/Synch: Implemented bare-bones versions of
+ Semaphore and RW_Mutex for the POSIX Pthreads wrappers so that
+ they'll be more compatible with the Solaris threads wrappers.
+ The semaphore implementation uses a Condition object and a
+ Mutex, which should be a reasonable solution. The RW_Mutex is a
+ cop-out for now and just uses a Mutex (i.e., no extra
+ parallelism for readers...). If anyone has a good
+ implementation of RW_Mutex that they'd like to share please let
+ me know.
+
+ * libsrc/Threads/Thread_Specific: Fixed the prototypes for copy
+ constructor and operator=, which were broken... Thanks to Alex
+ (alexey@ace.elektra.ru) for noticing this.
+
+ * libsrc/Shared_Malloc/Memory_Pool.C: Added some casts to
+ MAP_FAILED to handle OSF/1. Thanks to Alex
+ (alexey@ace.elektra.ru) for noticing this.
+
+ * libsrc/Threads/Token: Fixed things so that threads waiting for a
+ token wouldn't get screwed up by signals that occur...
+
+ * include/ace/sysincludes.h: Changed the #ifdef
+ ACE_SELECT_USES_LONG to ACE_SELECT_USES_INT for HP/UX since
+ believe it or not, it really does use int, not long!
+
+ * libsrc/SV_Semaphores: Fixed some weird problems that the HP/UX
+ compiler was having when trying to inline methods in this class.
+ As a consequence, I've rearranged the class to avoid inlining
+ non-trivial methods. Thanks to John Morey (jmorey@hitel.com)
+ for reporting these problems.
+
+Wed Aug 9 01:29:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Token: Added a tryacquire() method to become
+ interface compliant with other LOCK mechanisms.
+
+Sat Aug 5 09:18:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection: Fixed a couple of bugs when using
+ the Acceptor and Svc_Handler when ACE_OMIT_SERVICE_CONFIGURATOR
+ is enabled. Thanks to Stuart Powell (stuartp@ot.com.au) for
+ bringing this to my attention.
+
+ * include/ace/sysincludes.h: Added a #ifdef for MAXNAMELEN to
+ handle systems (like HP/UX) that don't support it.
+
+Thu Aug 3 22:59:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released new version of ACE 3.2.9...
+
+ * libsrc/Reactor/Time_Value.i (normalize): Added new code to
+ perform normalization of Time_Values. Thanks to Hans Rohnert
+ (Hans.Rohnert@zfe.siemens.de) of SIEMENS for the suggestion.
+
+Tue Aug 1 00:19:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Changed all code that used Log_Msg::log() directly to use
+ LM_ERROR or LM_DEBUG. This will ensure that logging will work
+ with the new thread-specific storage implementation.
+
+ * libsrc/Threads/Thread_Manager.i (open): Fixed this method so
+ that it is thread-safe when a Thread_Manager is resized.
+
+ * libsrc/ASX/Map_Manager.i (open): Fixed this method so that it is
+ thread-safe when a Map_Manager is resized.
+
+Mon Jul 31 12:56:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc/Trace: Reimplemented the ACE Trace class to use the
+ new thread-specific storage wrapper.
+
+ * libsrc/Log_Msg: Reimplemented the Log_Msg class to use the new
+ thread-specific storage wrapper. This shouldn't affect any
+ existing code that was careful to only use the LM* macros...
+
+ * libsrc/Threads: Added a new class called Thread_Specific which
+ implements a C++ wrapper for SunOS 5.x thread-specific data
+ (this will also work for POSIX pthreads I believe). Thanks to
+ Tim Harrison (harrison@cs.wustl.edu) for coming up with the idea
+ for using C++ "smart pointers" to implement this.
+
+ * libsrc/Reactor/Timer_Queue.h: Moved Timer_Node from within
+ Timer_Queue to outside Timer_Queue and renamed it to
+ ACE_Timer_Node. Unfortunately, some compilers still don't like
+ nested classes (ugh)...
+
+ * Changed ACE_Synch_Options to be simply Synch_Options since it
+ is *not* an ACE private class...
+
+Sun Jul 30 00:07:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/makeinclude/README: Added a new #define called
+ ACE_HAS_THREAD_SPECIFIC_STORAGE, which does exactly what it
+ sounds like! So far, I know that Solaris defines this. I'm not
+ sure which other platforms do (perhaps OSF/1 does?).
+
+Fri Jul 28 14:53:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Fixed a bunch more problems with loop variables that were
+ uncovered with GCC 2.7. Thanks to Matt Stevens
+ (mstevens@ent.mrj.com) for noticing this.
+
+ * apps/Logger/Service_Configurator_Logger: Added a new flag called
+ ACE_HAS_NO_STATIC_DATA_MEMBER_TEMPLATES which is necessary to
+ workaround bugs with GNU G++... Thanks to Matt Stevens
+ (mstevens@ent.mrj.com) for noticing this.
+
+ * libsrc/Connection/Connector.C (cleanup_AST): Changed the
+ parameter list just a tad to try and fix a problem with
+ G++ (which doesn't seem to like unscoped typedefs in
+ argument lists or return values.
+
+ * libsrc/Misc/Profile_Timer.i: Changed ::getrusage to be getrusage
+ to avoid problems with macros and scope operators...
+
+ * include/ace/testconfig.h (ACE_DEFAULT_RENDEZVOUS): Changed the
+ value from /tmp/foo to /tmp/fifo.ace. Thanks to Neil B. Cohen
+ (nbc@metsci.com) for suggesting this.
+
+Thu Jul 27 12:30:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/TokenServer/server/TokenHandler.C (abandon): Fixed a minor
+ bug that caused assert() to fail when a client abandoned a
+ Token.
+
+ * libsrc/Reactor: Fixed a bug with the design of the Reactor's
+ Timer_Queue cancellation mechanism. The new mechanism is much
+ more robust since it ensures that timer_ids (used to cancel
+ pending timers) are unique up to values of greater than 2
+ billion timers! As long as timers don't stay around longer than
+ this there should be no problems with accidentally deleting the
+ wrong timer. Thanks to Bill Sears (wsears@world.std.com) for
+ noticing this problem.
+
+ One nice consequence to this change is that legacy code that
+ would have broken with the previous change is now 100%
+ compatible!
+
+ * Provided a definition of ACE_Synch_Options::arg(const void *),
+ which I'd forgotten to define before (darn templates...).
+ Thanks to Tim Harrison (harrison@cs.wustl.edu) for finding this!
+
+ * include/ace/sysincludes.h: Added a total hack to get HP/UX to
+ understand getrusage(). The trick is to use the following
+ undocumented syscall:
+
+ #define getrusage(a, b) syscall(SYS_GETRUSAGE, a, b);
+
+ What a hack (but it works...).
+
+Tue Jul 25 13:20:58 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu)
+
+ * libsrc/Misc/Profile_Timer: Fixed a typo in Profile_Timer.h
+ (ACE_HAS_RUSAGE_T should have been ACE_HAS_GETRUSAGE). Thanks
+ to George Reynolds (george@dvcorp.com) for noticing this.
+
+ * Changed all uses of ::getopt() to use the ACE class Get_Opt
+ get_opt. Also changed all uses of optarg to get_opt.optarg.
+ Thanks to Bob Vistica (robertv@ims.com) for detecting and
+ reporting some inconsistencies in my previous changes...
+
+Mon Jul 24 19:03:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include: I've added config and platform support for SGI IRIX5.3
+ for use with the SGI C++ compiler. Thanks to Stuart Powell
+ (stuartp@ot.com.au) for these config files.
+
+ * libsrc/Connection/Acceptor.C (handle_input): Added the
+ Event_Handler::DONT_CALL flag when removing the Oneshot_Acceptor
+ from the Reactor so that we don't set it's peer_acceptor_ to -1.
+
+Mon Jul 24 12:46:10 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu)
+
+ * libsrc/Misc/Profile_Timer: Fixed problems stemming from the fact
+ that HP/UX doesn't seem to support getrusage() (how odd).
+
+ * tests/Connection: a new test directory to test out the Connector
+ and Acceptor pattern implementations.
+
+Sun Jul 23 12:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Acceptor.C: Fixed a minor bug with the
+ Oneshot_Acceptor constructor. Thanks to John Morey
+ (jmorey@hitel.com) for noticing this and the one below.
+
+ * libsrc/Reactor/Timer_Queue: Moved the static method current_time
+ from the Timer_Queue.i file to the Timer_Queue.C file. This
+ avoids a bug with HP/UX C++.
+
+Sat Jul 22 15:54:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released beta version 3.2.9. Once this compiles on all major
+ platforms then it's time to move to version 3.3.
+
+ * Added a number of miscellaneous changes for OSF/1 courtesy of
+ David Trumble (trumble@cvg.enet.dec.com). One of these changes
+ involved changing all uses of Reactor::{ADD,SET,CLR,GET} to
+ Reactor::{ADD,SET,CLR,GET}_MASK in order to avoid a class with
+ some symbols in OSF/1.
+
+Fri Jul 21 00:21:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Finally was able to test ACE on the SunOS 4.x platform (using
+ the SunC++ 4.0.1 compiler). The entire release compiled
+ correctly! This is a great relief after fighting with this
+ stuff for months... If you are building ACE on SunOS 4.x I'd
+ *strongly* recommend you get SunC++ 4.0.1 since it is the only
+ compiler that seems to be able to grok the weirdness of SunOS
+ 4.x...
+
+ * Finished updating all the ./tests and ./apps code so that it
+ works correctly with the new Acceptor/Connector modifications.
+ To see examples of these changes check out
+ ./tests/IPC_SAP/SOCK_SAP/CPP-{nbclient,inserver}.C.
+
+ * libsrc/Misc/Profile_Timer: Merged in the new Profile_Timer
+ implementation from David Trumble (trumble@cvg.enet.dec.com).
+ This will work with basically the same interface as the current
+ scheme even if the OS platform doesn't support the prusage_t
+ type...
+
+Thu Jul 20 01:07:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection: Added a new class called ACE_Synch_Options
+ which is used in both the Acceptor and Connector classes to
+ consolidate options related to synchronous and asynchronous
+ behavior.
+
+ * libsrc/Connection: Added a new class called Oneshot_Acceptor.
+ This class inherits from the Acceptor but it only accepts one
+ connection at a time (i.e., it doesn't keep itself registered
+ with the Reactor). Several examples in the tests/SOCK_SAP
+ directory have been added to illustrate how all this works.
+
+ * libsrc/Connection/Connector: completely redid the Connector and
+ Acceptor class interfaces to incorporate the new changes for
+ asynchronous and synchronous behavior. The new scheme should be
+ much more general (and correct...). Thanks to Tim and Irfan for
+ helping out with this.
+
+ * libsrc/Threads/Synch: Fixed the implementation of Recursive_Lock
+ so that it won't have race conditions when testing the thread id
+ and nesting level in parallel threads.
+
+Wed Jul 19 13:15:05 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Timer_Queue: Added new support for cancellation
+ of individual Event_Handlers in the Reactor. In addition, it is
+ now possible to cancel all Event_Handlers with a single call to
+ Timer_Queue::cancel(). Note that this new scheme will break
+ existing code since Timer_Queue::schedule() (and
+ Reactor::schedule_timer()) now return ACE_Timer_Node *'s rather
+ than ints...
+
+ * libsrc/Service_Configurator/Service_Config: Fixed a problem
+ where the "-s" option didn't work since it was parsed when
+ "Service_Config::open" was called
+ (it sets Service_Config::signum_). However, previously the
+ signal handler was already setup by the constructor. By moving
+ this registration to the open() method the problem was solved.
+ Thanks to Bob Vistica (robertv@ims.com) for noticing this.
+
+ * libsrc/Service_Configurator/Service_Manager: Changed the
+ Service_Manager::reconfigure_services to use this->signum_
+ rather than to hard code SIGHUP. Thanks to Bob Vistica
+ (robertv@ims.com) for this insight.
+
+Mon Jul 17 12:08:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Threads/Token.C (renew): Fixed a typo so that we compare
+ this->head_ == 0 rather than this->head_->next_ == 0.
+
+ * libsrc/Reactor/Reactor.h: Changed the Reactor to use the
+ Reactor_Token rather than the pure Token to make sure that the
+ sleep_hook() is called to unblock the Reactor.
+
+Fri Jul 14 14:12:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection: Changed the default behavior of the Connector
+ and Acceptor classes such that they pass a -1 to
+ svc_handler_->close() when things go wrong. This is useful as a
+ flag to close() (e.g., if it needs to figure out what to do if
+ is shuts down prematurely).
+
+ * libsrc/Connection/Svc_Handler.C: Added a default definition of
+ the put() method, which is defined as a pure virtual method in
+ class Task.
+
+Thu Jul 13 23:10:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/ace/sysincludes.h: Added support for the SGI IRIX 5.3
+ OS. More screwy gettimeofday() hacks (what a pain...). Thanks
+ to Matt Stevens (mstevens@kirk.softeng.infonautics.com) for
+ these fixes.
+
+ * include/makeinclude/platform_sunos5_centerline.GNU: Fixed a
+ vexing problem that was causing the Centerline C++ compiler to
+ puke when compiling ACE. Thanks to Chandra Venkatapathy
+ (cvenkat@develop.bsis.com) for finding a solution!
+
+Tue Jul 11 00:01:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released version 3.2.6 for use by Karl and Detlef.
+
+Mon Jul 10 00:28:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/TTCP: Added support for benchmarking the performance of
+ Orbix, ORBeline, ACE SOCK_SAP, and C sockets. These results are
+ available at URL http://www.cs.wustl.edu/~schmidt/COOTS-95.ps.Z
+
+ * libsrc/Service_Configurator/Makefile: Added new commands to the
+ Service Configurator Makefile so that all automatically
+ generated flex and yacc symbols (i.e., the "yy" stuff) is
+ renamed "ace_yy". The purpose is to avoid conflicts with other
+ uses of flex/yacc lexers/parsers with ACE. Thanks to Steve
+ Ritter (ritter@titan.com) for this suggestion and code.
+
+ * libsrc/IPC_SAP/TLI: Changed the TLI files so they are
+ conditionally compiled only if the platform supports TLI...
+
+ * libsrc/Connection: Changed the inlining strategy of Connector,
+ Acceptor, and Svc_Handler so that very short methods are always
+ inlined, but anything larger is never inlined...
+
+Sun Jul 9 14:07:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * include/ace/testconfig.h: Changed all occurrences of DEFAULT_*
+ to ACE_DEFAULT_ to prevent namespace collision.
+
+ * libsrc/Connection/Connector: Massively improved the Connector
+ class so that its connect() method supports the following
+ behavior (tv == "timeout value" and ur == "use Reactor"):
+
+ Parameters | Description
+ |
+ tv | ur |
+ -----|----------|-------------------------------
+ | |
+ NULL | yes | infinite timeout (using Reactor)
+ | |
+ time | yes | try asynch transaction for
+ | | the specified time (using Reactor)
+ | |
+ 0,0 | yes | poll; try, if EWOULDBLOCK,
+ | | then return immediately
+ | | (using Reactor)
+ | |
+ NULL | no | block forever (don't use Reactor)
+ | |
+ time | no | do a blocking transaction
+ | | for the specified time
+ | | (don't use Reactor)
+ | |
+ 0,0 | no | poll; but do not initiate a
+ | | nonblocking transaction
+ | | (don't use Reactor)
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Changed the behavior of
+ the SOCK_Connector::connect() method so that it uses Time_Values
+ rather than a simple flag that indicates whether or not to use
+ non-blocking connectors. The new scheme is an improvement since
+ it allows greater control over synchronous and asynchronous
+ timeouts for connection establishment. This behavior parallels
+ that of SOCK_Acceptor, as well! If this works well then I'll
+ update the TLI_Connector and SPIPE_Connector to match this
+ interface.
+
+ * libsrc: Continued to improve ACE's use of the global name space
+ by prefixing all "helper" classes with "ACE_"
+
+ * Updated SPIPE_Acceptor so that it would have the same basic
+ interface as the SOCK_Acceptor and TLI_Acceptor.
+
+ * libsrc/IPC_SAP: Consolidated the handle_timed_wait() methods
+ used by the TLI, socket, and STREAM pipe wrappers so that they
+ share the new ACE::handle_timed_accept() method, which is in
+ libsrc/Misc.
+
+ * libsrc/Misc: Modified the structure of Misc.[Ch]. Originally,
+ this file contained a bunch of stand-alone C functions with the
+ prefix "ace_" to keep them from conflicting with user's code.
+ I've modified things now so that all the miscellaneous functions
+ are now static methods in class ACE. This provides better scope
+ control...
+
+ * libsrc/Log_Msg/Log_Msg: Replaced the use of a Mutex in class
+ Log_Msg with a Recursive_Lock<Mutex>. This is necessary to
+ handle signals correctly...
+
+ * libsrc/Reactor/Reactor: Modified the behavior of
+ Reactor::notify() so that writers will block if the pipe is
+ full. This solves some nasty flow-control problems.
+
+ * libsrc/Reactor/Handle_Set: changed all uses of fd_set to
+ ACE_FD_SET_TYPE * so that HP_UX would work correctly...
+
+ * include/ace/config-hpux.h: Removed the ACE_HAS_XLI flag until I
+ get a better idea which HP systems this is installed on.
+
+ * libsrc/Threads/Thread: Added a new static method called
+ spawn_n() that spawns "n" threads all running the same function.
+
+Sat Jul 8 14:14:34 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Service_Configurator: Made some miscellaneous changes to
+ "const" methods and parameters in order to handle the new
+ Reactor changes (C++ can be such a pain about this
+ sometimes...).
+
+ * libsrc/Threads: Added "yield" and "sigsetmask" methods to class
+ Thread. How did I manage to omit these before?!
+
+ * libsrc/Reactor: Updated the Reactor to use the new Token class
+ described below. This greatly simplies the structure of the
+ multi-thread support in the Reactor code. In addition, it
+ should improve performance because it cuts the number of context
+ switches compared with the old scheme. Many thanks to
+ Karl-Heinz and Detlef for encouraging me to redo the Reactor
+ implementation.
+
+ * libsrc/Threads: Added a new class called Token that provides a
+ flexible and efficient recursive mutex scheme. Thanks to
+ Karl-Heinz Dorn (kdorn@erlh.siemens.de) and Detlef Becker
+ (beckerd@erlh.siemens.de) for sharing their original code for this.
+
+Thu Jul 6 10:37:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Event_Handler_T: Conditionally compiled this so
+ that it will only compile if the compiler supports template
+ typedefs (e.g., G++ doesn't seem to like this...).
+
+ * Started to make changes in ACE to deal with the new ANSI C++
+ semantics in the scope of variables defined within for loops.
+ Thanks to Aniruddha Gokhale (gokhale@cs.wustl.edu) for noticing
+ this in G++ 2.7...
+
+Wed Jul 5 21:50:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Svc_Handler: Fixed the behavior of the
+ Svc_Handler class so that it can be configured with a Reactor
+ other than Service_Config::reactor, just like the Acceptor and
+ Connector. Thanks to Karl-Heinz Dorn (kdorn@erlh.siemens.de)
+ for suggesting this!
+
+Tue Jul 4 00:21:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added some new changes for Linux courtesy of Charles Rennolet
+ (clr@thurse.mn.org).
+
+ * libsrc/Reactor/Reactor.C (bit_ops): Fixed a dumb error in
+ bit_ops that was caused by checking "else if (Reactor::SET)"
+ rather than "else if (ops == Reactor::SET)". Thanks to Mark
+ Patton (mark_patton@tx72.mot.com) for finding this bug and
+ reporting it along with the fix.
+
+ * include/ace/sysincludes.h: Added new fixes for M_SYNC and
+ ENOTSUP on SunOS 4.
+
+ * libsrc/Reactor: Added new support for integrating X and the
+ Reactor. These files are called XtReactor.* and XReactor.*.
+ Thanks to Eric Vaughan (evaughan@arinc.com) for providing this
+ stuff...
+
+Mon Jul 3 19:44:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added support for SunOS 5.5 on i86 PC. Thanks to Bin Mu
+ (mubin@wfg.com) for the config files and fixes.
+
+ * libsrc/Misc/Profile_Timer: Added new support for versions of
+ UNIX that don't support prusage_t. The new version of
+ Profile_Timer will use gettimeofday() and getrusage() of
+ prusage_t and /procfs isn't available... This code hasn't been
+ tested yet (since I don't have SunOS 4.x) so I don't know if it
+ works.
+
+ * Hopefully fixed the SunOS4 prototype for gettimeofday(). Thanks
+ to Andrew McGowan (ajm@se09.wg2.waii.com) for the suggested fix.
+
+ * include/makeinclude/platform_hpux.GNU (CC): Added new support
+ for building ACE and shared libraries on HP/UX. Thanks to Jam
+ Hamidi (jh1@osi.com) for this code.
+
+ * libsrc/Reactor/Handle_Set: Fixed Handle_Set_Iterator::operator++
+ to check for index to be greater or equal than NUM_WORDS instead
+ of just equal. This is better for sanity, although it may not be
+ needed. Thanks to Carlos Garcia Braschi (cgarcia@caramba.tid.es)
+ for suggesting this fix.
+
+Wed Jun 14 11:16:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/TLI_Acceptor: modified TLI_Acceptor so that it's
+ public constructor/open() and accept() methods are more similar
+ to the SOCK_Acceptor. In particular, added support for
+ "SO_REUSEADDR" in TLI_Acceptor and time values for accept().
+ Thanks to John P. Hearn (jph@ccrl.nj.nec.com), TLI_SAP now does
+ the right thing for socket options.
+
+ * libsrc/IPC_SAP: Fixed up the SOCK_Acceptor and TLI_Acceptor in
+ order to add better support for "timed accepts." The new scheme
+ uses Time_Values, which is more consistent with other parts of
+ ACE. In addition, the Time_Value was moved from the
+ constructor/open() to the accept() method, which allows more
+ fine grained control over this behavior. Thanks to Irfan
+ (ip1@cs.wustl.edu) for suggesting this.
+
+ * libsrc/IPC_SAP: Cleaned up the SOCK_Acceptor::open and
+ TLI_Acceptor::open routine. In addition to being more compact
+ and robust, this routine now also let's open() determine which
+ local port to bind to (if you pass in Addr::sap_any as the
+ local_addr). Thanks to Irfan (ip1@cs.wustl.edu) for suggesting
+ this.
+
+Tue Jun 13 16:09:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Timer_Queue: Fixed an odd problem with the
+ Timer_Queue on Solaris. Apparently the select() call will
+ return slightly earlier than the timeout dictates due to lack of
+ granularity with the system clock. This was causing problems
+ where the Reactor wasn't correctly dispatching the
+ handle_timeout() method of Event_Handlers. The fix was to add a
+ 10 Millisec "fudge factor" when calling the
+ Timer_Queue::expire() method. Please let me know if this causes
+ any problems. Thanks to Giang Hoang Nguyen
+ (yang@titan.com) to noticing this problem.
+
+ * libsrc/Connection/Acceptor: Enhanced the Acceptor class so that
+ it is possible to accept a new SVC_HANDLER synchronously, rather
+ than always driving this acceptance out of the Reactor's event
+ loop. Thanks to Irfan (ip1@cs.wustl.edu) for suggesting this.
+
+ * libsrc/IPC_SAP/Addr: Changed all occurrences of ace_sap_any to
+ Addr::sap_any (i.e., sap_any is now a static data member in
+ class Addr). This is an improvement since it helps to limit the
+ scope of what would otherwise be global variables...
+
+Wed Jun 7 17:26:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * apps/Logger/Reactor_Logger/Client_Acceptor.i (handle_input):
+ Fixed a braino that omitted an important block of code! Thanks
+ to Ken Konecki (kenk@wfg.com) for finding this.
+
+Fri Jun 2 13:59:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.i (set): Removed the special case
+ for INADDR_ANY. This should just fall right out...
+
+Thu Jun 1 19:45:21 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Added support to
+ SOCK_Connector so that it is possible to bind the local TCP port
+ number prior to establishing the connection. Also fixed the
+ TLI_Connector to be consistent with this approach. Thanks to
+ Mark Patton (mark_patton@tx72.mot.com) for this idea.
+
+ * Fixed a problem with Mem_Map that was caused by the fact that
+ some versions of Unix (e.g., SunOS 4.x) don't support MS_SYNC...
+ Thanks to Andy McGowan (mcgowan@wg2.waii.com) for noticing this.
+
+ * Fixed a very stupid bug in ./libsrc/Synch.h that accidentally
+ omitted this->lock_.acquire() from the Guard class constructor.
+ Thanks to Bin Mu (mubin@wfg.com) for noticing this!
+
+Fri May 26 13:20:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Connection/Acceptor: Added a new method called
+ make_svc_handler() that generalizes the dynamic creation of a
+ SVC_HANDLER by the Acceptor's Template Method handle_input().
+ This scheme is completely backwardly compatible with the
+ original approach, but now allows transparent extension too!
+
+ * libsrc/Connection/Acceptor: cleaned up the Template Method logic
+ in Acceptor::handle_input. No longer do we set the listener
+ socket into non-blocking mode and then rely on a -1 with
+ EWOULDBLOCK to indicate there are no more connections to
+ establish. This was causing problems for singleton Svc_Handlers
+ since the Acceptor was setting their peer_stream_ to -1... The
+ new approach should complete solve this problem.
+
+Mon May 22 15:10:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released version 3.2.3 so that Bill Sears can test the new
+ #include "ace/" features.
+
+ * Modified all the ACE source, tests, and apps so that all
+ #includes of its headers are refixed by ace/, e.g.:
+
+ #include <ace/Reactor.h>
+
+ There are two reasons for have the include files be of
+ this form:
+
+ First, you can tell at a glance by looking at the caller where
+ the library is coming from.
+
+ Secondly, you can build an include tree of the form:
+
+ /include/lib1
+ /include/lib2
+ /include/lib3
+ /include/ace
+
+ which then links to WRAPPER_ROOT. Now, all you have to do
+ when you build a make file is point to the include root, and
+ put links in the include root. This is especially helpful
+ if there are multiple versions.
+
+ This means just one less thing that has to be modified in the
+ Makefile. Thanks to Bill Sears (wsears@world.std.com) for
+ recommending this change.
+
+Sat May 20 17:12:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * config-irix5.3-sgic++.h: Added new configuration support for SGI
+ IRIX5.3 courtesy of Stuart Powell (stuartp@ot.com.au).
+
+Sat May 13 20:44:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Generalized the SOCK_Connector::complete method so that it takes
+ a Time_Value timeout. This allows applications to wait upto a
+ certain limit before giving up on a non-blocking connection.
+ Updated the tests in ./tests/IPC_SAP/SOCK_SAP/CPP-inclient.C to
+ illustrate how this is used.
+
+ * Added some interesting new tests to ./tests/Mem_Map that can be
+ used to benchmark the performance of various strategies (e.g.,
+ stdio, read/write, mmap, etc.) for copying files.
+
+Fri May 12 19:09:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Mem_Map/Mem_Map: Added two new overloaded methods called
+ sync() that are wrappers around the msync(3c) system call. Also
+ added a new unmap() method that gives access to the full
+ behavior of munmap(3c).
+
+Wed May 10 14:16:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Tried yet another fix for the gettimeofday() botch that both
+ Centerline and SunOS 5.4 screw up in different ways. Thanks to
+ Medhi Tabatabai (Mehdi.Tabatabai@ed.nce.sita.int) for the latest
+ fixes.
+
+Tue May 9 19:05:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Handle_Set.C: Fixed some "off-by-one" errors that
+ were occurring in the Handle_Set::sync() and set_max() methods.
+ Thanks to Nigel Hooke (n.hooke@trl.oz.au) for finding and fixing
+ these.
+
+Mon May 8 02:01:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C: Moved the Null_Callback class from
+ being nested within the Reactor class to outside the Reactor
+ class. This fixes a problem with the SIG compiler.
+
+ * Released version 3.2.2.
+
+ * libsrc/Reactor/Signal.C: Made the Signal_Handler class
+ thread-safe as well as signal-safe.
+
+ * libsrc/Reactor/Reactor.C: Modified the new Reactor
+ implementation slightly to handle signals correctly.
+
+ * libsrc/Threads/Synch.h: Added a new conversion operator to
+ Recursive_Lock that returns the underlying LOCK in case we need
+ it for something (e.g., to initialize a Condition object).
+
+Sun May 7 04:17:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C: Finished what I hope will be the last
+ set of changes to make the Reactor robust in multi-threaded
+ programs in situations where separate threads are used to
+ register and remove handlers. The final solution is elegant in
+ that it does not significantly penalize the performance of
+ programs that do not use separate threads to register and remove
+ handlers. Moreover, if you compile without the ACE_MT_SAFE flag
+ the Reactor will not include additional state information
+ related to the multi-threaded implementation.
+
+ * libsrc/Threads/Synch.h: Subclassed the Guard class to make a new
+ class Try_Guard that uses tryacquire() to obtain a LOCK.
+
+Fri May 5 18:43:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Released version 3.2.1
+
+Thu May 4 19:43:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/TLI_SAP/TLI_Connector.C (connect): Fixed a
+ problem whereby a t_bind() was being done twice. Since I didn't
+ write this code I don't know if my fix will work generically on
+ all platforms supporting TLI. Please let me know if there are
+ any problems.
+
+Tue May 2 17:21:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor: Added a new notification feature that allows
+ multiple threads of control to enqueue Event_Handler * to the
+ main Reactor thread via the pipe used to wake up the main
+ Reactor thread. The Reactor will call the handle_exception()
+ method on Event_Handler with a HANDLE == -1 to notify the
+ handler. This feature is very useful if you need to have
+ certain operations (such as handler termination) performed in
+ the main thread.
+
+Tue Apr 25 00:34:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor: Fixed a stupid pair of typos in the Reactor that
+ failed to cast arguments to the pipe to char *.
+
+ * libsrc/Connection: Fixed a portability problem with the
+ Connector: we can't use RW_Mutex for synchronization since not
+ all platforms support threads. The quick fix is to use
+ Null_Mutex, but a better long term approach is on the way!
+
+ * Released version 3.2.
+
+ * Added richer support for the TLI_Connector to make it work
+ better with protocols other than TCP/IP. Thanks to Mats
+ Sundvall (sundvall@perrier.embnet.se) for these enhancements.
+
+Mon Apr 24 02:26:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Changed the SOCK_Dgram_Brdcast class name to SOCK_Dgram_Bcast
+ and the SOCK_Mcast to SOCK_Dgram_Mcast to be more consistent.
+
+ * Massively improved the Reactor's support for multi-threading.
+ There was actually a major problem in previous versions of ACE
+ that used poll() as the underlying event demultiplexor. Poll()
+ produced incorrect results when the Reactor::handle_events()
+ method was run in one thread, but another thread came along and
+ registered or removed an Event_Handler. The new version fixes
+ this problem so that the Reactor will now work correctly in
+ multi-threaded programs.
+
+ One consequence of this change is that sysincludes.h and the
+ SunOS 5.x configuration files have been changed so that poll()
+ is no longer used as the default demultiplexor. The reason is
+ that poll() doesn't work as efficiently when used in
+ multi-threaded programs (ugh). See the Reactor code for
+ examples of how this all works now. Basically, the trick is to
+ use the select()-style implementation for most of the code, and
+ transform to poll()-style implementation only when necessary.
+
+Sat Apr 22 03:35:51 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
+
+ * libsrc/ASX/Message_Queue: Added a new method to the
+ Message_Queue class called unblock(). This method allows one
+ thread to release all other threads that are waiting for
+ messages to be enqueued or dequeued on a Message_Queue.
+ Modified the return value of methods like enqueue_head() and
+ dequeue_head() so that if a thread unblocks() then these methods
+ return -1 with errno == ESHUTDOWN. Also changed the name of
+ some of the internal methods so that they would be more
+ consistent.
+
+ * libsrc/Connection/Connector: Fixed a stupid bug caused by
+ failing to have a destructor for Connector. Thus, there are
+ cases where unconnected Svc_Handlers are left around in the
+ handler_map_. This causes problems for dynamic linking in
+ conjunction with the Reactor, so now the destructor iterates
+ through all the unconnected Svc_Handlers and removes them from
+ the Reactor.
+
+Fri Apr 21 15:28:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Signal: Changed Sig_Set::addset() and
+ Sig_Set::delset() to the more appropriately named sig_add() and
+ sig_del(). Also added '_' in the Sig_Set method names to be
+ more consistent...
+
+ * Removed the ./libsrc/IPC_SAP/SOCK_SAP/misc.[hC] file and merged
+ the one function in that file (ace_bind_port) into
+ ./libsrc/Misc/Misc.[hC].
+
+ * Added a bunch of fixes from various people to make ACE compile
+ better on SGI, SunOS 4, and HP/UX. Thanks for all the fixes!
+
+ * libsrc/IPC_SAP/Addr: Changed sap_any to ace_sap_any to avoid
+ problems with the namespace.
+
+ * Added a new portability flag that only compiles the SOCK_Mcast.*
+ stuff if the platform supports multicast!
+
+ * ./libsrc/Shared_Malloc: Fixed some portability bugs with
+ Memory_Pool.C and added new support for SunOS 4.x running SunC++
+ 4.x. Thanks to Steve Warwick (swarwick@arinc.com) for this
+ strategic help.
+
+Wed Apr 19 09:05:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Fixed up the ./libsrc/CORBA_Handler so that it will correctly
+ compile on platforms that don't have Orbix...
+
+ * libsrc/Misc: added a new "Simple String" class called SString.
+ This is not really meant to be used by end-user applications.
+ It is used by certain portions of ACE that need to have
+ operator== and operator!= defined on a string (e.g., the
+ Token_Server and the Orbix Event_Comm components that use the
+ Map_Manager).
+
+Tue Apr 18 00:09:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/ASX: Fixed a stupid bug in Task::activate() that didn't
+ spawn a thread if the Thread_Manager was NULL...
+
+Sat Apr 15 19:39:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor: Added a new class to the Reactor called
+ Event_Handler_T.[hi]. This class makes it easy to integrate
+ existing classes into the Reactor framework without requiring
+ them to inherit from Event_Handler directly. This technique is
+ a superset of the DEF_TIE approach used by IONA in Orbix as one
+ of the ways to combine an existing class (that doesn't know
+ anything about CORBA) with a CORBA interface. Thanks to Greg
+ Lavender
+ (g.lavender@isode.com) for the suggestion.
+
+Fri Apr 14 14:41:49 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Run catman on the ./man directory so that it now has a windex
+ file. This facilitates "man -k".
+
+Thu Apr 13 23:39:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor: Made the Reactor be a stand-alone component that
+ does not require any other ACE libraries.
+
+ * Added two new methods to the Reactor so that you can now
+ register or remove a set of HANDLEs in a single call. Thanks to
+ Bill Sears
+ (wsears@world.std.com) for this suggestion. Basically, now you
+ can register or deregister a set of n HANDLEs with one operation
+ (rather than doing n register_handler () or n remove_handler
+ ()).
+
+ * include/sysincludes.h: Changed the name of the macro MT to
+ ACE_MT and DB to ACE_DB to avoid polluting the namespace.
+
+Wed Apr 12 11:14:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C (close): Added code to close down the
+ pipe handles when the Reactor is shut down. Thanks to Mark
+ Patton (mark_patton@tx72.mot.com) for this info.
+
+Fri Apr 7 18:33:30 1995 Douglas C. Schmidt (schmidt@siesta.cs.wustl.edu)
+
+ * Added a new method to CORBA_Handler so that handlers don't need
+ to subclass from CORBA_Handler, but rather can call the
+ CORBA_Handler::register_service() method (which is static).
+ Thanks to Chris Tarr (ctarr@objectspace.co) for this suggestion.
+
+Mon Apr 3 13:09:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added a new static method to Service_Config.[hC] called
+ end_event_loop(). This can be used to stop the run_event_loop()
+ method of the Service_Config. In addition, all the methods in
+ Service_Config were changed to be static to emphasize the fact
+ that the Service Configurator is a singleton...
+
+ * include/Trace.h (ACE_TRACE): Changed the macro T to ACE_TRACE.
+ This will prevent namespace pollution.
+
+ * Added support for the Orbix CORBA implementation. If you don't
+ have Orbix, you'll need to remove this flag from the
+ config-sunos5-sunc++.4.x.h file if you are compiling on SunOS
+ 5.x.
+
+Sun Apr 2 01:12:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added new support for C++ wrappers around the IP multicasting.
+ There are three new files in ./libsrc/IPC_SAP/SOCK_SAP called
+ SOCK_Mcast.[hiC] and a new test directory in
+ ./tests/Reactor/multicast and ./tests/Reactor/ntalker to
+ illustrate how to use this stuff. Thanks to Tim Harrison
+ (harrison@cs.wustl.edu) for this code.
+
+Sat Apr 1 18:48:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added support to the libsrc/Shared_Malloc/Memory_Pool.[hC] class
+ for System V shared memory, as well as for mmap(2) and sbrk(2)
+ memory. Please note that this has not been extensively tested
+ yet, so use with caution...
+
+Thu Mar 30 21:50:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Misc/Atomic_Op: Added the postfix versions of the ++ and
+ -- operators. This stops the Sun CC compiler from griping about
+ the "anachronistic" usage when using a++ rather than ++a.
+ Thanks to Bruce Worden <bruce@betsy.gps.caltech.edu> for the
+ suggestion.
+
+Wed Mar 29 22:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Handle_Set: Fixed a weird problem where I was
+ using NOFILE as the max number of descriptors rather than
+ FD_SETSIZE. I don't know why I was doing this.
+
+ * Also fixed up a problem with Handle_Set that was causing the
+ iterator to go nuts when it got a strange initial value of
+ fd_set in Handle_Set. Orbix triggers this kind of nonsense in
+ some cases...
+
+Tue Mar 28 21:01:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/Reactor/Reactor.C: swapped the order of dispatching so
+ that handle_exception methods are dispatched before handle_input
+ methods to improve response time for exceptions (e.g., OOB
+ data). Thanks to Detlef Becker
+ (beckerd@erlh.siemens.de) for suggesting this.
+
+ * Fixed a bug in ./ASX/Stream.i that caused problems when a Module
+ was popped off a Stream. Thanks to Paul Stephenson for noticing
+ this and sending me the fix.
+
+ * Changed the Reactor::dispatch methods so that they dispatch the
+ timers *before* dispatching the I/O-based event handlers. This
+ is helpful for systems that are time-delay sensitive.
+
+ * libsrc/Reactor/Time_Value: Added new += and -= operators to
+ Time_Value. Thanks to Alex V. Maclinovsky
+ (garyh@teleng1.tait.co.nz) for this suggestion.
+
+Thu Mar 23 15:38:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/Addr/SPIPE_Addr.i (set): Fixed a problem that the
+ HP/UX compiler had with complex arithmetic expressions.
+
+ * libsrc/Service_Configurator: fixed up the Service_Configurator
+ source code so that it will compile correctly on HP/UX
+ platforms.
+
+Tue Mar 21 00:28:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * libsrc/IPC_SAP/SOCK_SAP/LSOCK_Connector.h: Fixed an amazingly
+ stupid bug with LSOCK_Connector, where I was passing in a
+ default argument of PF_INET instead of PF_UNIX... Arrgh!
+
+Mon Mar 20 20:24:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Fixed up the $WRAPPER_ROOT/include/makeinclude/ directory to
+ define a new set of platform-specific configuration files. This
+ should greatly improve the portability of ACE to different
+ OS/compiler platforms.
+
+ * Added a bunch of changes to allow ACE to build with Lucid C++ on
+ SunOs 4.x. This should also fix some other problems we've been
+ having with SunOS 4.x. Thanks to Lee Baker (baker@ctis.af.mil)
+ for these changes.
+
+Sun Mar 19 00:34:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added manual pages for all of the ./libsrc libraries. These
+ manual pages are all generated automagically from the libsrc
+ header files.
+
+Sat Mar 18 10:48:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Finally broke down and fixed the Makefile scheme so that there
+ is just one shared library (libACE.so) and one archive library
+ (libACE.a). This should massively simplify the application
+ development process, though it may require a bit of fixing of
+ Makefiles to remove all the -lReactor -lIPC_SAP stuff that was
+ in there before.
+
+ * libsrc/IPC_SAP/TLI_SAP/: Fixed a stupid bug that was causing
+ core dumps since the TLI option pointers weren't initialized to
+ 0 in the TLI::TLI constructor. Thanks to Ed Brown for noticing
+ this (eebrown@netcom.com).
+
+Wed Mar 15 00:08:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added some new fixes to get ACE to run on OSF1 and Linux.
+
+Tue Mar 14 13:36:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added several changes to the source code and config-hpux.h
+ configuration file based on comments from Alex Ranous
+ (ranous@nsa.hp.com). In particular, changed ACE_HAS_NO_FDSET to
+ ACE_SELECT_USES_LONG.
+
+Mon Mar 13 09:23:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Improved the Makefile scheme so that the use of PTDIRS is no
+ longer required. The trick was to link the appropriate template
+ *.C files into the WRAPPER_ROOT/include directory. This enables
+ the compiler to find them in one single place.
+
+Sun Mar 12 22:35:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
+
+ * Added a new mechanism to clean up the insane number of -D's in
+ the Makefile. This new mechanism requires a bit more work at
+ installation time, but should greatly reduce the effort during
+ normal software development
+ (once ACE is installed...). See the INSTALL file
+ for more details.
+
+Fri Mar 10 17:29:02 1995 Douglas Schmidt <douglas@gtcterminator>
+
+ * Fixed a stupid bug in Map_Manager.i which wasn't correctly
+ setting default values for fields in one of the Map_Manager
+ constructors.
+
+Fri Mar 10 08:54:42 1995 Doug Schmidt <douglas@gtccipher>
+
+ * /libsrc/Connection/Acceptor.i: Fixed a potential memory leak in
+ handle_input().
+
+Thu Mar 9 11:59:54 1995 Doug Schmidt <douglas@gtccipher>
+
+ * Changed the Map_Manager::find() method to use class Read_Guard
+ so that multiple finds may proceed in parallel on a multiple
+ threaded application. Likewise, changed the implementation of
+ bind() and unbind() to use class Write_Guard so that destructive
+ operations will be serialized correctly. One consequence of
+ this is that RW_Mutex must be used instead of Mutex...
+
+ * Added a new overloaded Map_Manager::unbind() method with an
+ INT_ID parameter. This parameter that passes back a reference
+ to the internal id being unbound. This allows the caller to
+ clean up any dynamic memory associated with the INT_ID.
+
+Tue Mar 7 13:32:17 1995 Doug Schmidt <douglas@gtccipher>
+
+ * Changed a bunch more things to get ACE to compile with
+ Centerline C++. This should also make ACE more portable to
+ other cfront-based compilers.
+
+ * Had to change the ASX source in ACE to work around a stupid
+ problem with templates in cfront-based C++ compilers.
+ Fortunately, it was possible to mask most of the problems using
+ the C++ preprocessor.
+
+ * There seem to be some problems with cfront-based compilers (such
+ as centerline). They don't like the new SYNCH::MUTEX usage in
+ the Message_Queue.
+
+ * Removed several unused local variables in the INET_Addr::set()
+ method.
+
+Wed Mar 1 00:35:11 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Added a major performance boost on high-speed networks. It
+ turns out that send(3) and revc(3) are slower than write(2) and
+ read(2) (since the latter are system calls, and the former are
+ library calls. Therefore, I added new overloaded methods to
+ SOCK_IO so that write(2) and read(2) are available to the user!
+
+Tue Feb 28 10:13:09 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Reactor/Reactor.C: Fixed the implementation of the
+ Reactor::open and Reactor::Reactor constructor so that it is now
+ possible to resize the size of the Reactor *after* the
+ constructor has run (by calling open()) *without* having to shut
+ down the Reactor first.
+
+ * Modified the Reactor::attach() method so that it will ADD the
+ new bits to the bitmask rather than SET them. Thanks to Mark
+ Patton for recommending this
+ (mark_patton@tx72.mot.com).
+
+Sat Feb 25 15:08:04 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Released version 3.0.5.
+
+Fri Feb 24 17:57:01 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Used the OSE class2man scripts to generate UNIX manual pages for
+ IPC_SAP, Thread, Connection, and Reactor. Other manual pages
+ will be forthcoming...
+
+ * libsrc/IPC_SAP/Addr/INET_Addr.i: Fixed a bug in one of the
+ INET_Addr::set() methods that caused a segmentation fault if
+ host_name was NULL. In addition, greatly cleaned up the code so
+ that all the "set" methods share a common basis of code.
+
+Tue Feb 21 19:32:28 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Updated the entire release to use the new SYNCH template
+ interface for Task, Module, Stream, and Message_Queue. This is
+ *much* cleaner, though it reveals some bugs with the Sun C++
+ templates facility.
+
+Mon Feb 20 22:46:14 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the SPIPE_SAP, SOCK_SAP, and TLI_SAP *Connector class
+ methods from open() to connect(). This is a more accurate name
+ and it also fits in nicely with the Acceptor::accept() method.
+
+ * Started integrating new versions of various header files that
+ include hooks to automatically generate documentation.
+
+Tue Feb 14 20:52:13 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the order in which the Reactor dispatches descriptors.
+ Originally, it dispatched the "read" descriptors *before* the
+ "write" descriptors. Now, it dispatches the "write" descriptors
+ first. This was necessary to handle weird behavior of sockets
+ over TCP/IP when data is piggy-backed with the final ACK on a
+ non-blocking connection.
+
+Mon Feb 13 15:49:21 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the name of Event_Handler::get_fd() to
+ Event_Handler::get_handle() to be more consistent with other
+ usage in ACE.
+
+Sat Feb 4 22:47:34 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Service_Configurator/Service_Object: changed the
+ destructor to be virtual (thanks to Steffen Winther Sorensen
+ <sts@dad.stibo.dk> for noticing this).
+
+Sat Jan 28 16:29:49 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the name of class Map_Manager's Search_Structure struct
+ to Map_Entry. This is more specific to what that data structure
+ really does.
+
+ * Began adding support for Linux, courtesy of sts@dad.stibo.dk.
+
+Sun Jan 22 23:15:38 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the name of the ./libsrc/Connector-Acceptor directory to
+ ./libsrc/Connection. Also changed the name of libConn_Acc.so to
+ libConnection.so to be more consistent.
+
+Sat Jan 21 13:59:18 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/IPC_SAP: Fixed the *Acceptor classes for SOCK_SAP and
+ SPIPE_SAP so they behave just like FIFO_SAP and contain a method
+ called remove(). This method closes the underlying descriptor
+ and also unlinks the local address from the file system.
+
+ * libsrc/ASX/Message_Queue.i (copy): Fixed this code so that it
+ correctly stores starting at the wr_ptr rather than the rd_ptr.
+ Thanks to Chris Cleeland
+ (chris@milo.st-louis.mo.us) for pointing this out
+ to me.
+
+Wed Jan 11 13:07:19 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed all uses of class Thr_Manager to class Thread_Manager
+ and class Thr_Cntl to Thread_Control. This is more readable and
+ is now consistent with the documentation...
+
+Tue Jan 10 13:49:31 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Modified the makefile scheme so that only the *.so files are
+ built by default. If you want to build both *.a and *.so files,
+ uncomment out the lines described in
+ $WRAPPER_ROOT/include/makeinclude/rules.lib.GNU. Note that this
+ will require you to run make on the ./libsrc directories twice
+ in order to properly build and install both the *.a and *.so
+ libraries.
+
+Mon Jan 9 22:57:29 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Reactor/Signal.h: Changed the name of the Signal_Block
+ class to the Signal_Guard class to be more consistent with the
+ Guard class in Synch.h.
+
+Sat Jan 7 19:49:46 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * tests/ASX/Event_Server/Event_Server: Revised the Event Server
+ test example to use the Acceptor pattern components.
+
+Fri Jan 6 23:38:21 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * Added a new method to class Task that turns a task into an
+ active object (i.e., associates a thread of control with the
+ task). This is useful since it replaces all the places in
+ application code that original said "this->thr_mgr_.spawn
+ (THR_FUNC
+ (&this->svc_run))", etc...
+
+Thu Jan 5 21:05:15 1995 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/ASX: Changed the capitalization of class STREAM to class
+ Stream. This seems more reasonable since I don't see any
+ particular reason to shout about Streams!
+
+ * libsrc/ASX/Task: Changed name of method qreply() to reply() to
+ reflect the fact that the name of the class is no longer Queue!
+
+ * libsrc/ASX: Made both Task and Message_Queue into parameterized
+ types. This greatly improves the ability to parameterized
+ synchronization into an application.
+
+ * Changed all occurrences of timestruc_t to use Time_Value
+ instead. This helps to improve portability and reduce the
+ "impedence mismatch" caused by mixing both C and C++ types in
+ the ACE interfaces. Note that one drawback of this is that we
+ lose nano-second timing accuracy. However, I don't know of any
+ real OS platforms that support that degree of precision anyway!
+
+ * libsrc/Reactor: Moved the static "zero" data member from the
+ Timer_Queue class to the Time_Value class. Also added a new
+ static data member called "zerop," which is a pointer to "zero".
+
+ * libsrc/Threads/Synch: Changed the interface of class Condition
+ so that it no longer has both wait() and a timedwait() methods.
+ Since C++ has default values, these two methods were redundant.
+ Now, there is only a single method called wait(). By default,
+ it's argument is 0, which defaults to the original wait()
+ semantics. If the argument is non-zero then the timewait
+ semantics apply.
+
+ * libsrc/Threads/Synch: Added a new class called Null_Condition.
+ This is similar to the Null_Mutex class in the sense that it has
+ the same interface as class Condition, but it's methods are all
+ no-ops
+ (however, wait() and signal() both set errno = ETIME
+ before returning...). This class is useful for
+ parameterizing synchronization into an application.
+