summaryrefslogtreecommitdiff
path: root/ChangeLogs/ChangeLog-1994
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLogs/ChangeLog-1994')
-rw-r--r--ChangeLogs/ChangeLog-19941027
1 files changed, 1027 insertions, 0 deletions
diff --git a/ChangeLogs/ChangeLog-1994 b/ChangeLogs/ChangeLog-1994
new file mode 100644
index 00000000000..09465ce823f
--- /dev/null
+++ b/ChangeLogs/ChangeLog-1994
@@ -0,0 +1,1027 @@
+Fri Dec 23 01:50:50 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/ASX: Changed the behavior of Map_Manager::Map_Manager()
+ to allocate a default-sized buffer.
+
+ * libsrc/Reactor/Reactor.C (dispatch): Made the poll-based Reactor
+ smarter about detecting POLLERR error conditions. When POLLERR
+ is detected, the Reactor now shutdown down that fd...
+
+Wed Dec 21 18:29:15 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/IPC_SAP/SPIPE_SAP: Changed the name of class SPIPE_Msg to
+ SPIPE_IO to reflect the fact that I/O over named pipes need not
+ be message-oriented...
+
+ * Changed all occurrences of {SOCK,TLI,SPIPE}_Listener to
+ {SOCK,TLI,SPIPE}_Acceptor. This is a more accurate name for the
+ function these classes perform. In addition, it is easier to
+ explain in the context of the Acceptor and Connector patterns.
+ Note that the *.h files are also changed, as well.
+
+ * Changed the implementation of {SOCK,TLI,SPIPE}_SAP so that there
+ is now a *_Connector class to go along with the *_Acceptor
+ class. The *_Connector is a factory that produces *_Stream
+ objects *actively*, in a similar way to how the *_Acceptor is a
+ factory that produces *_Stream objects *passively*. This makes
+ everything much more orthogonal, though it will break existing
+ code... The easiest way to fix existing code is to do the
+ following:
+
+ 1. Find places in the code that define objects of
+ type SOCK_Stream, LSOCK_Stream, TLI_Stream,
+ or SPIPE_Msg (now called SPIPE_IO).
+
+ 2. Replace #include "SOCK_Stream.h" with
+ #include "SOCK_Connector.h" (or whatever
+ C++ wrapper you have).
+
+ 3. Replace definitions of the form:
+
+ INET_Addr addr (port, host);
+ SOCK_Stream foo (addr);
+
+ with
+
+ INET_Addr addr (port, host);
+ SOCK_Stream foo;
+ SOCK_Connector con (foo, addr);
+
+ If you don't want to have an extra variable named "con",
+ you can replace this with:
+
+ INET_Addr addr (port, host);
+ SOCK_Stream foo;
+ SOCK_Connector (foo, addr); // Calls the constructor.
+
+Tue Dec 20 21:34:10 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Renamed the ./{libsrc,tests}/{Semaphores,Message_Queues}
+ directories to SV_Semaphores and SV_Message_Queues to better
+ reflect their true behavior and in order to prevent clashes with
+ the new ASX names.
+
+ * libsrc/ASX: Renamed Queue to Task to better reflect its true
+ functionality. In addition, renamed Message_List to
+ Message_Queue.
+
+Mon Dec 19 23:04:52 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed "private" to "protected" in ASX/Message_List.h at the
+ request of Troy Warner (tnw1@core01.osi.com).
+
+Mon Dec 12 23:47:01 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/IPC_SAP/SOCK_SAP: changed the name of the global utility
+ function "bind_port()" to ace_bind_port() to avoid polluting the
+ global symbol namespace.
+
+ * Fixed a descriptor leak in SOCK_Dgram::shared_open() and
+ SOCK_CODgram::shared_open(). The original version didn't
+ automatically close down the socket descriptor if bind failed.
+ The new version does close the descriptor down.
+
+Sat Dec 10 00:53:20 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Reactor/Reactor.C (mask_ops): Fixed a stupid bug... The
+ test should have been
+
+ if (this->invalid_handle (handle) ||
+ this->poll_handles_[handle].fd == -1)
+
+ rather than:
+
+ if (this->invalid_handle (handle) ||
+ this->poll_handles_[handle].fd != -1)
+
+ * libsrc/Reactor/Reactor: Modified the semantics of
+ Reactor::remove_handler() such that calling it with a value of
+ Event_Handler::DONT_CALL or'd into the Reactor_Mask instructs
+ the Reactor to remove the handler *without* calling the object's
+ handle_close() method!
+
+Fri Dec 9 12:53:31 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * include/Synch: some C++ compilers (e.g., Centerline) barf when
+ the see the following in an inline function:
+
+ if (foo == bar)
+ {
+ errno = result;
+ return -1;
+ }
+ result result;
+
+ I fixed this by doing the following:
+
+ if (foo == bar)
+ {
+ errno = result;
+ result = -1;
+ }
+ result result;
+
+Wed Dec 7 22:23:47 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * include/Synch.h: Added additional methods in the Null_Mutex
+ class in order to be consistent with the RW_Mutex interfaces...
+
+ * libsrc/ASX/Message_List: Added new a set of methods called
+ "try_enqueue_head" and "try_enqueue_tail" that will only insert
+ a message into the queue if it is not already full. If it is
+ full, return EWOULDBLOCK.
+
+Tue Dec 6 13:58:28 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Reactor/Event_Handler: added default values of -1 to the
+ handle_input(), handle_output(), and handle_exception() methods.
+
+Mon Dec 5 23:30:28 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/ASX/Message_List: Added a new method called set_length to
+ Message_Block. This method sets the length of the "active"
+ portion of the message. This is defined as the offset from
+ RD_PTR to WR_PTR.
+
+Sat Dec 3 20:40:53 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Threads/Synch: Added two new class called Write_Guard and
+ Read_Guard, which provide functionality a la the Guard class,
+ only that they acquire and release readers/writer locks.
+
+ * libsrc/Threads/Synch: For interface uniformity with other
+ synchronization wrappers I added an acquire() method. This is
+ implemented as a write-lock to be on the safe-side...
+
+Fri Dec 2 13:33:39 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * include/Synch.i (Mutex::tryacquire): Modified the behavior of
+ Mutex::tryacquire so that it will return -1 and set errno to the
+ appropriate return value of tryacquire(3T) if various types of
+ "problems" occur (such as the Mutex already being held).
+
+ * include/Message_List.i: Rearranged the order of the
+ Message_Block::get_rd_ptr and Message_Block::set_wr_ptr methods
+ to deal with inlining problems that some cfront-based C++
+ compilers have...
+
+ * libsrc/Reactor/Signal.[hi]: Changed set_handler/get_handler to
+ "handler" to avoid a collision with Rogue Wave libraries. This
+ new version is more consistent with other usage in ACE anyhow...
+
+ * Modified the behavior of Service_Config::Service_Config() so
+ that it makes the initialize size of the Reactor be the same
+ size as the Service_Repository. This was done at the suggestion
+ of Bob Sayle and Steve Warwick at ARINC Research.
+
+Sun Nov 20 00:59:06 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/ASX/Message_List: Added two new methods
+ (is_full() and is_empty()) to the public interface
+ of Message_List. These methods check whether the queue is full
+ or empty *while holding the lock*.
+
+ * libsrc/ASX/Queue.h: Made the svc() method a pure virtual
+ function. This is much cleaner than not doing it, particularly
+ when we've already got to define open(), close(), and put()...
+
+ * Added a new method to the IPC_SAP/Addr inheritance hierarchy.
+ The method is called addr_to_string() and it converts the
+ address of a subclass (e.g., either UNIX domain or Internet
+ domain) into a string. This functionality is particularly
+ useful in parameterized types (such as Acceptor), which should
+ be oblivious of the type of communication domain they are
+ using...
+
+ * Reorganized the ./apps/Logger/Service_Configurator_Logger
+ directory in order to reuse more code. Now, all the Acceptor
+ pattern classes have been moved to a new subdirectory called
+ ./libsrc/Acceptor. In addition, this code has been generalized
+ to work with the ASX framework!
+
+Sat Nov 19 15:19:19 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Released version 2.15.5 (added a couple of minor fixes and some
+ additional software to the release. In particular, I've added
+ the RPC++ C++ wrappers for Sun RPC. See the README file for
+ more info on this.
+
+ * apps/Synch-Benchmarks: Reorganized all the synchronization tests
+ so that they would be easier to understand and extend.
+
+ * include/sysincludes.h (ACE_NONBLOCK): Fixed a stupid typo in the
+ ./include/makeinclude/wrapper_macros.GNU file that accidentally
+ used ACE_NONBLOCKING instead of ACE_NONBLOCK... Jaysus
+
+ * Fixed up the Service_Config.[Chi] source so that it no longer
+ allocates statically linked services via static variables.
+ Stacy Mahlon (mcs@contour.mayo.edu) recommended this change to
+ workaround bugs in compilers that fail to initialize static
+ objects appropriately.
+
+Tue Nov 15 11:55:03 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Fixed a portability problem in the ./libsrc/Service_Configurator
+ that was caused by certain compilers failing to initialize
+ global variables correctly. In particular, the Obstack object
+ ace_obstack is now a pointer that is allocated dynamically by
+ Service_Config.process_directive(). Thanks to Stacy Mahlon
+ (mcs@contour.mayo.edu) for noticing this!
+
+Mon Nov 14 12:16:14 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Threads/Thread.h: added C++ wrappers for
+ thr_getconcurrency() and thr_setconcurrency().
+
+ * Fixed a dumb typo in ./tests/IPC_SAP/SOCK_SAP/CPP-nbclient.C
+ that failed to conditionally compile for different variants of
+ siginfo...
+
+ * Added some test programs that benchmark the performance of
+ Solaris synchronization mechanisms. See ./apps/Synch-Benchmarks
+ for details...
+
+ * Extended the methods of the Queue class to take advantage of the
+ new Message_List methods that perform timed waits! This
+ involves changing many of the existing methods in this class to
+ add an extra parameter of type timestruc_t *, which defaults to
+ 0.
+
+ * Added some new comments in the
+ ./include/makeinclude/wrapper_macros.GNU file that indicate what
+ the various macros defined by the Makefile scheme actually mean.
+ This should help people who are porting to a new system...
+
+ * Fixed a dumb bug in ./tests/Shared_Memory that directly included
+ system header files. Everything in ACE should include
+ "sysincludes.h" instead... Thanks to Stacy Mahlon
+ (mcs@contour.mayo.edu) for noticing this!
+
+ * include/Memory_Pool.i (round_up): Fixed a typo where PAGESIZE
+ should have been ACE_PAGE_SIZE.
+
+Sat Nov 12 01:32:52 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Generalized the Shared_Memory_Pool class for Malloc so that it
+ doesn't require the base addresses for multiple processes to all
+ start at the same location.
+
+ * libsrc/Service_Configurator/Thread_Spawn.i (Thread_Spawn):
+
+ Fixed a stupid bug in the constructor. Note that we should
+ be checking if this->tm_ == 0, rather than != 0...
+
+Fri Nov 11 00:11:41 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Released version 2.15.4 (added a couple of minor fixes).
+
+ * Added a new test program in the ./tests/ASX/Message_List
+ directory. This program illustrates how thread-safe
+ Message_Lists work using ASX.
+
+ * libsrc/Threads/Thr_Manager.i: Added a new method called
+ insert_thr() to Thr_Manager that is used in conjunction with
+ Thr_Cntl::Thr_Cntl to make sure that a thread is added to the
+ Thr_Manager's table correctly.
+
+Thu Nov 10 20:14:11 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Log_Msg/Log_Record.C (print): Fixed the following very
+ subtle (and very stupid) bug:
+
+ return ::fprintf (fp, this->msg_data_);
+
+ if this->msg_data_ contains '%', then this call will
+ fail since fprintf tries to treat the percent sign as
+ a format code. The obvious fix is:
+
+ return ::fprintf (fp, "%s", this->msg_data_);
+
+ * libsrc/ASX/Message_List.i (is_empty): Fixed a braino that failed
+ to check if there was a 0-sized buffer in the list. It is now
+ possible to enqueue a 0-sized buffer, which is helpful for
+ things like signaling end of transmission by a producer.
+
+ * libsrc/ASX/Message_List.C: Improved the robustness of the
+ Message_List abstraction by detecting the case where the newly
+ inserted Message_Block is a NULL pointer. Before, this would
+ crash the program, where now it returns -1 from the
+ enqueue_head() or enqueue_tail() methods.
+
+ * libsrc/Threads/Synch.h: added timedwait_signal() and timedwait()
+ methods to class Condition. These are wrappers around the
+ cond_t cond_timedwait() function.
+
+ * Improved the documentation of the class interfaces in the
+ Synch.h C++ wrapper for Solaris 2.x threads mechanisms.
+
+ * Changed the name of class Condition methods wait_signal() and
+ timedwait_signal() to wait_alert() and timedwait_alert() to
+ remove confusion with UNIX signals and the regular condition
+ variable signal.
+
+Wed Nov 9 23:49:24 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/IPC_SAP/Addr/UNIX_Addr.i (UNIX_Addr): Fixed another
+ couple brainos in UNIX_Addr.i (thanks for Irfan
+ (ip1@cs.wustl.edu) for noticing this).
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK.i (get_local_addr): Fixed a braino
+ that didn't reset the Addr size after a call to getsockname().
+
+Tue Nov 8 00:25:02 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Service_Configurator/Svc_Conf.y (create_service_type):
+ Fixed a bug on lines 323 and 324, and 330 and 331. The "#if
+ defined" needs to be INSIDE the "case" statements. Thanks to
+ mcs@contour.mayo.edu for finding this!
+
+ * Improved the interfaces for all the synchronization wrappers so
+ that they can be given all the parameters for the underlying
+ SunOS 5.x *_init calls. Default values are given to keep the
+ normal usage concise...
+
+Mon Nov 7 21:41:13 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed all occurrences of Mutex_Rec to Recursive_Lock. This is
+ much more descriptive since by using templates, the recursive
+ logic applies to a number of synchronization mechanisms (e.g.,
+ Semaphores, RW_Mutex, Mutex, Null_Mutex, etc.) rather than just
+ the Mutex class.
+
+ * Changed all occurrences of Mutex_Block to Guard. This is more
+ standard terminology and reflects Booch's terms more closely, as
+ well.
+
+Sun Nov 6 14:31:44 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Majorly improved the modularity and structure of the Reactor
+ class. Much duplicate code has been coalesced and several new
+ features have been added.
+
+ * Changed the name of the Reactor method set_ready() to
+ ready_ops(). Added a new method called mask_ops(). These
+ methods make it possible to manipulate the "dispatch masks" and
+ the "ready masks" (e.g., READ_MASK, WRITE_MASK, etc.) at a much
+ finer level of granularity without loss of efficiency or
+ correctness.
+
+Sat Nov 5 16:48:55 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the name of three methods in the Semaphore class to
+ mirror the terms used for Mutex and RW_Mutex. This will help
+ support the use of semaphores along with templates (e.g.,
+ Rec_Lock) much better... The old names were "wait", "trywait",
+ and "signal". The new names are "acquire", "tryacquire", and
+ "release."
+
+ * Added a new class called Signal_Block in Signal.[hiC] This class
+ operates similar to Mutex_Block, in that it holds a set of
+ signals over the duration of a C++ statement block. The
+ constructor masks out the signals and the destructor restores
+ the signals.
+
+ * Changed the name of files Signal_Handler.[hiC] to Signal.[hiC]
+ to reflect a broadening of the functionality of the ACE wrappers
+ for Signals. For example, the new C++ classes wrap the sigset_t
+ API, as well as the struct sigaction structure.
+
+Fri Nov 4 00:41:48 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Yow, got the new Shared_Malloc/Malloc class to work correctly on
+ SunOS 4.x, as well as SunOS 5.x. It's a bit more clunky on
+ SunOS 4.x since we have to use System V semaphores rather than
+ Solaris synchronization mechanisms. However, it now seems to
+ function correctly!
+
+ * Added a new method called "tryacquire" to Semaphore_Complex and
+ Semaphore_Simple. This method provides the same "non-blocking"
+ semantics as it does in the Mutex, Semaphore, and RW_Mutex
+ classes.
+
+ * Added a new method called "remove()" to all the C++ wrappers in
+ the Synch.[hi] file. This improves the symmetry with the System
+ V semaphore wrappers, and also gets around a nasty bug with
+ cfront 3.x and its handling of templates and explicitly called
+ destructors...
+
+ * Added a new C++ wrapper class for Threads (Thread.h). The
+ eventual purpose of this class is to hide the differences
+ between POSIX pthreads and Solaris threads.
+
+ * Added new parameters to Thr_Manager::spawn to enable the stack
+ and stack_size to be passed in.
+
+ * Modified the Synch.h file so that the Null_Mutex and Mutex_Block
+ classes will both be compiled, even if we are building ACE on a
+ platform that doesn't support threads!
+
+ * Added a timed event-loop method to the public interface of the
+ Service_Config class. This basically forwards the request to
+ the underlying Reactor->handle_events method. Thanks to Brad
+ Needham (bneedham@arinc.com) of ARINC research for the
+ suggestion!
+
+Wed Nov 2 14:47:25 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the interface for one of the Reactor's
+ {register,remove}_handler methods. These methods
+ had previously taken a sigset_t &, but for some reason the Sun
+ C++ 3.0 compiler can't seem to recognize that this is different
+ from an int! Therefore, I changed the interface to take a
+ sigset_t *.
+
+ * Fixed some portability bugs that crept into the SunOS 4 version
+ of ACE, particularly with the siginfo_t extended signal handler
+ stuff.
+
+Tue Nov 1 21:46:07 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Log_Msg/Log_Msg.C (log): Fixed a braino on line 175.
+ "int sig" was undefined outside the conditional (duhhh ;-)).
+
+Thu Oct 27 17:23:37 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Fixed up some problems with Semaphore_Complex and
+ Semaphore_Simple. The new design should be more functional,
+ particularly for Semaphore_Complex, which now generalizes to
+ arrays of semaphores.
+
+Wed Oct 26 16:38:42 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Shared_Malloc/: Created a .i file for Malloc and
+ Memory_Pool to handle inlines.
+
+ * Fixed a fence-post error in Mem_Map::map_it(). The new version
+ should correctly set the length of the file *and* also do the
+ appropriate memory mapping.
+
+ * bin/clone.C: Fixed the clone program so that it now compiles
+ with the C++ compiler rather than the C compiler.
+
+Tue Oct 11 20:01:16 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Reactor/Reactor.h (Reactor): Changed the order of the
+ arguments to the Reactor's register_handler() method used to
+ register signal handler objects. The new order puts both "new"
+ components first, and any
+ (optional) old components following this. This is
+ a more natural set of default values...
+
+ * libsrc/Shared_Malloc: split out the Local and Shared memory
+ pools for class Malloc into the Memory_Pool.[hC] files.
+
+Mon Oct 10 22:54:53 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Threads/Synch.i: Reworked the Thread_Mutex and
+ Process_Mutex classes to inherit their interface and
+ implementation code from Mutex... Thanks to Irfan Payrali for
+ the suggestion!
+
+Wed Sep 28 11:26:34 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Moved some of the tests directories around to better reflect
+ precisely which ACE components are being tested. In particular,
+ the {client,server} directories that were originally under the
+ ./tests/Reactor subtree are now located in the
+ ./tests/Service_Configurator subtree.
+
+Tue Sep 27 23:05:32 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Added a bunch of constructors/destructors for
+ ./tests/Reactor/server to make g++ happy.
+
+ * libsrc/Service_Configurator/Service_Object.[ih]
+ (Service_Object): Added a constructor and destructor to
+ Service_Object to make g++ happy. Also, removed the #if for
+ broken versions of g++ 2.5.8.
+
+ * include/Reactor: Added a constructor and destructor for
+ Null_Callback to make G++ happy...
+
+ * libsrc/Message_Queues/: Added support for G++ templates.
+
+ * Changed the handling of _sys_siglist in the sysincludes.h file
+ to try and handle the weird SunOS 4 header file problems...
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (mk_broadcast):
+ Removed the "struct" from new struct ifnode in order to
+ compile...
+
+Tue Sep 20 11:17:23 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Fixed a couple of minor typos in the Windows NT C++ wrappers for
+ sockets.
+
+ * Released version 2.15.2 so that Mark Frutig could have access to
+ the latest source in order to write man pages!
+
+Thu Sep 15 20:47:36 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Extended the Event_Handler interface to support the additional
+ siginfo_t-style parameters for extended SVR4 signal handling.
+ Note that for backwards compatibility, this new interface only
+ enabled if the -DACE_HAS_SIGINFO flag is set in the
+ wrapper_macros.GNU config file. Making this change affected
+ several of the existing ACE classes such as Service_Config and
+ Signal_Handler.
+
+Mon Sep 12 17:07:10 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Improved the modularity of the Reactor by creating a new class
+ called Signal_Handler. This new class basically encapsulates
+ the signal handling mechanism provided by UNIX within a nice OO
+ abstraction. The new arrangement is particularly useful since
+ the Signal_Handler class may be used in applications
+ (e.g., the Malloc class abstraction) that do not require the
+ other features of the Reactor.
+
+Sun Sep 11 14:40:06 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed the default value for Semaphore_Simple and
+ Semaphore_Complex from OPEN to CREATE. This is more closely
+ related to how SunOS thread synchronization variables work.
+
+ * Changed the methods of the Semaphore_Simple class to be
+ syntactically equivalent to the Process_Mutex and Thread_Mutex
+ classes. This makes it easier to write code that uses
+ parameterized types to instantiate the appropriate type of
+ synchronization primitive.
+
+ * include/makeinclude/rules.local.GNU (OBJDIRS): Fixed the
+ "depend" target so that it generates the correct dependencies
+ for remaking .so files after they are changed.
+
+ * Added a new pair of methods to the Reactor so that it is now
+ possible to register/remove a sigset_t of signals in one
+ operation.
+
+Sat Sep 10 03:11:34 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/Mem_Map/Mem_Map.i (map_it): Fixed a few minor bugs with
+ how the Mem_Map::map() method handles lseek()'s.
+
+ * Changed the name of the Mem_Map::open() methods to
+ Mem_Map::map(). This seems like a more reasonable name! Also,
+ removed the close() method. This is trivial to implement via
+ ::close (mmap.get_fd ());
+
+Fri Sep 9 22:04:25 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Provided a new implementation of a flexible memory allocation
+ scheme (Shared_Malloc/Malloc.[HiC]). This memory allocation can
+ be parameterized by the following:
+
+ 1. The pool from which memory is allocated (e.g.,
+ local memory vs. shared memory).
+
+ 2. The type of synchronization used when allocating
+ the memory (e.g., no synchronization, thread-based
+ synchronization, process-based synchronization).
+
+ * libsrc/Threads/Synch.i (Proc_Mutex): Added new classes to the
+ Synchronization library. These classes are wrappers around the
+ USYNC_PROCESS and USYNC_THREAD flags to mutex_init().
+
+Wed Sep 7 20:29:00 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * include/sysincludes.h (MT): Added check to see if _REENTRANT was
+ already defined, and if so, avoid redefining it!
+
+Sun Sep 4 16:23:17 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Released version 2.15.1 to the world...
+
+ * Added support for the Windows NT version of SOCK_SAP.
+
+ * Fixed a few minor bugs involved with the order of linking
+ libraries.
+
+ * Fixed an oversight in ./testsReactor/server/server_test.C where
+ I was still including the "Server_Test.h" file (ugh).
+
+Wed Aug 31 13:27:10 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Stream.C (open): Fixed a bug
+ whereby the I/O descriptor wasn't being closed if connect()
+ failed. Thanks to Charles Eads
+ (eads@synoptics.com) for reporting this.
+
+
+ * Recompiled everything on SunOS 4.x using SunC++ 3.x and SunOS
+ 5.x using SunC++ 3.x and 4.x. Everything seems to compile fine
+ now.
+
+ * Released version 2.15
+
+Mon Aug 29 00:14:04 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Finished up a preliminary set of tests for ASX. See the
+ $WRAPPER_ROOT/tests/ASX/Event_Server directory for more details.
+
+ * wrapper_macros.GNU (CC): Removed the ARCHFLAG from the CCFLAGS
+ macro in the Makefile system. Henceforth, all conditional
+ compilation should be performed on a "per-feature" basis, rather
+ than a "per-platform" basis...
+
+ * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (send):
+ Automatically convert the port number to htons format before
+ using it to initialize the sin_port field of the addressing
+ structure. This is consistent with the behavior of other parts
+ of IPC_SAP (particularly INET_Addr::set()).
+
+Sun Aug 28 00:02:53 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Changed version number of 2.15 to reflect all the major
+ modifications to the structure of ACE.
+
+ * include/sysincludes.h: Started to fix up the conditional
+ compilation scheme to be much smarter about the features that
+ are available from both the compiler and the OS environment.
+
+ * Added a fix suggested by Leslee Xu (lxu@ics.uci.edu) to better
+ handle the normalization of Timer_Values.
+
+ * Continued to make ACE coding conventions more consistent by
+ removing get_/set_ prefix from all the accessor/manipulator
+ methods. Also, added an underbar at the end of all class and
+ object instance variables.
+
+Sat Aug 27 20:28:13 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Continued to improve error handling by replacing all uses of
+ perror with the Log_Msg macros.
+
+ * include/sysincludes.h: Continued to improve the namespace
+ utilization in ACE by prefixing stand-along Misc functions with
+ ace_.
+
+ * include/FD_Set.h: Changed the name FD_Set_Iter to
+ FD_Set_Iterator.
+
+ * typedef'd int to HANDLE in Event_Handler.h in preparation for
+ merging in the Windows NT support along with the regular ACE
+ package. I need to update all the other code in the entire
+ release to be consist with this!
+
+Thu Aug 25 19:49:57 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Fixed a bug with Thr_Manager.i that occurred if a thread created
+ by ::thr_create() exits prior to the acquisition of the lock and
+ the subsequent bookkeeping.
+
+Wed Aug 24 17:34:49 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Updated SOCK_Dgram_Brdcast to return the average number of bytes
+ sent. This isn't necessarily the most useful info, but it
+ doesn't hurt either. Thanks to Mark Frutig (mfrutig@fnbc.com)
+ for the suggestion.
+
+Mon Aug 22 01:18:14 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Added a new test for the Service Configurator framework. This
+ test illustrates the dynamic configuration of an entire stream
+ of Modules.
+
+Sun Aug 21 03:16:00 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Cleaned up the ./tests/Reactor/server example to be more robust.
+ In particular, it doesn't really make sense to have the same
+ object be configured both statically and dynamically *at the
+ same time*! This was causing problems since each constructor
+ was getting called twice for the same object -- once when it was
+ created statically, and again when it was linked in
+ dynamically... Things work much better now.
+
+Sat Aug 20 01:07:24 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Heavily revised the structure of the ./apps/Logger
+ subdirectories to test out the new Makefile scheme. Everything
+ is working fine on Solaris!
+
+ * Updated all the ./apps/Logger subdirectories to use the Acceptor
+ name rather than the Client_Listener name. This is consistent
+ with recent papers...
+
+ * Fixed all the Makefiles to utilize the new simplified build
+ strategy. The Makefiles are *far* more automated now!
+
+ * Added support to all the libsrc Makefiles to produce both shared
+ libraries (*.so) and traditional archives
+ (*.a).
+
+Fri Aug 19 16:13:42 1994 Douglas C. Schmidt (schmidt@tango)
+
+ * Majorly improved the Makefile support for building shared
+ objects that will be dynamically linked explicitly. No longer
+ will we have to do the horrible hack of compiling all the source
+ code using -pic. Instead, only that code that will be linked
+ dynamically must be compiled with -pic! Note that this only
+ works if the shared object is entirely self contained (i.e., it
+ does *not* reference any statically linked symbols that are not
+ defined in itself)!
+
+ * Started to add changes to the source code to make its
+ configation driven by features rather than by OS. This should
+ make everything much more portable soon!
+
+ * Fixed IPC_SAP.h so that the constructor is protected (prevents
+ accidental definition of an instance of this class).
+
+Thu Aug 11 08:31:33 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu)
+
+ * Fixed Reactor::schedule_timer() so that it will unblock the
+ Reactor if it is currently blocked. This is necessary so that
+ the Reactor will recompute the amount of time that it needs to
+ wait before dispatching timer-based events. Thanks to Todd Hoff
+ for noticing this...
+
+ * Fixed a stupid bug in the handle_input() method of
+ Client_Listener in both the Reactor and Service_Configurator
+ version of the Server Logging Daemon. This routine was not
+ explicitly returning 0 when it worked..., which might cause the
+ Reactor to deregister the listener handler!
+
+ * Added casts to the ::select() call in the Reactor to ensure that
+ the FD_Set * -> fd_set * conversion operators are properly
+ involved. Thanks to Todd Hoff for this fix (thm@ictv.com).
+ Todd noticed that the DCE pthreads implementation on AIX was
+ confusing the compiler...
+
+Mon Aug 8 18:11:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Added a new constructor for the FD_Set class that will convert
+ an fd_set into an FD_Set.
+
+ * Removed the default value for the Service_Repository constructor
+ since this was ambiguous with the default constructor.
+
+Tue Aug 2 18:25:28 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Fixed a bunch of minor "warning-causing" nits that were caused
+ by #endif __INLINE__ in certain header files...
+
+ * Added a new set of interfaces to the Reactor to retrieve a
+ registered handler. These interfaces are also useful for
+ checking whether a handler is registered at a particular fd.
+
+Sun Jul 10 17:43:19 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Improved the implementation of the Profile_Timer and
+ High_Res_Timer classes. In particular, the High_Res_Timer class
+ now works quite nicely using SunC++ 4.0.
+
+Mon Jul 4 12:49:14 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Changed the order of the base class inheritance list for the
+ Service_Object class as a workaround for a bug in SunC++ 4.0's
+ handling of pointers to member functions (ugh).
+
+Sun Jul 3 18:07:16 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Added a bunch of changes (courtesy of
+ george@truffula.fp.trw.com). These changes fix minor
+ portability problems with the new SunC++ 4.0 compiler.
+
+Fri Jun 24 08:59:02 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Removed operator() from all the IPC_SAP listener classes.
+ Defining this operator was causing more trouble than it is worth
+ since C++ doesn't allow operator() to have default arguments
+ (ugh). The "right" thing to do is to simply use the accept()
+ method in those classes instead of operator().
+
+Wed Jun 22 16:54:05 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Fixed some problems with TLI_Listener that involved lax scoping
+ of nested classes with cfront 3.x-based C++ compilers.
+
+Tue Jun 14 11:56:56 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Added a bunch of changes to get portions of ACE up and running
+ on SCO UNIX, on HP-UX, and on OSF/1.
+
+Tue Jun 7 14:32:50 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Added support for FLEX's <<EOF>> symbol to properly cleanup when
+ a configuration file has been parsed by the Service
+ Configurator's lexer/parser.
+
+Sun May 22 10:37:14 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu)
+
+ * Modified the semantics of explicit dynamic linking on SunOS 4.x.
+ Now, if there is no _init or _fini function defined in a shared
+ library, it isn't an error (we simply don't call the function!).
+
+Mon May 9 07:58:35 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Included more fixes for GNU G++ courtesy of Aniruddha Gokhale
+ <gokhale@cs.wustl.edu>.
+
+Thu May 5 16:47:25 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Reimplemented the ./apps/Logger/Reactor_Logger to provide an
+ illustration of how the Reactor works.
+
+ * Added finishing touches to the new version of the Service
+ Configurator framework. This framework now permits completely
+ automated configuration and reconfiguration of Service_Objects
+ and Streams. The next step is to add some more complete
+ examples that illustrate how these features are used...
+
+Tue May 3 10:17:12 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Fixed a bug in the Service Repository that would cause an
+ extraneous dlclose on a shared library handle under some
+ circumstances...
+
+Mon May 2 11:07:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Modified the semantics of Service_Object_Type in the Service
+ Configurator framework so that it does not automagically
+ register the service object with the instance of the Reactor.
+ The original behavior involved too much "over-specification" of
+ the behavior of Service Objects. Moreover, I can finally omit
+ the crazy semantics of DONT_REGISTER_SVC and REGISTER_SVC!
+
+ * Fixed some subtle bugs involved with pop'ing a remove'ing a
+ Module from a Stream. Note that we need to use Module::link
+ rather than Module::set_next in order to ensure that all the
+ necessary pointers get rearranged....
+
+ * Fixed a couple of minor problems with deleting const objects in
+ the Service_Repository.i file. These were caught by G++, but
+ not caught by SunC++!
+
+Sun May 1 11:43:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Fixed subtle bug in Server_Config::run_event_loop(). This bug
+ prevented reconfiguration from occurring under certain
+ circumstances.
+
+ * Added a new feature to the Service_Manager class in the Service
+ Configurator framework. This new feature enables the Service
+ Configurator to be reconfigured remotely by clients.
+
+ * Fixed a bug in Service_Manager that caused the Service
+ Configurator to crash if SIGPIPE occurred if a client closed
+ down ungracefully while retrieving information on active
+ services.
+
+ * Added a new argument to the Reactor::register_handler() method
+ that is used to register signal handling Event_Handlers. This
+ new argument returns the current Event_Handler (if any) that is
+ registered for this signal.
+
+ * Fixed a potential bug in Service_Config::process_directives that
+ behaved improperly when there was no svc.conf file present in a
+ directory.
+
+Wed Apr 27 12:55:46 1994 Douglas C. Schmidt (schmidt at mabillon.ics.uci.edu)
+
+ * Changed the name of Service_Directory to Service_Manager to
+ reflect its intended functionality
+
+Mon Apr 25 10:53:01 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Updated the Service Configurator framework to use the new signal
+ handling facilities provided by the Reactor. This cleans up a
+ lot of the code in Service_Config.i and removes the need for
+ ugly non-reentrant static class variables.
+
+ * Released version 2.14
+
+Sat Apr 23 14:29:11 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Changed the representation of the select()-based Reactor to be
+ more similar with the poll()-based Reactor. In particular,
+ there is only one array of Event_Handlers rather than three...
+
+Sun Mar 13 16:49:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Fixed a bug with the select-based version of the Reactor. This
+ bug caused problems when dispatching the handle_output() member
+ function.
+
+ * Fixed a bug with the select-based version of the Reactor. This
+ bug resulted in a failure to call the handle_close() member
+ function on the write_fds and except_fds.
+
+ * Changed the interface for Event_Handler::handle_close() so that
+ the second parameter is a Reactor_Mask. This allows the
+ call-back routine to determine which side of a connection (i.e.,
+ read-side vs. write-side or both) to close down. Be careful
+ since this change may break existing code that used the original
+ 1 argument handle_close() member function.
+
+ * Changed the location of the Reactor_Mask. It was originally an
+ enum in Reactor.h. It is now a typedef in Event_Handler. This
+ change will break existing code but it easily spotted since the
+ compiler will give an error!
+
+Sat Mar 12 15:16:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Continued to modify the grammar of the svc.conf file language.
+ The latest version (illustrated in configuration files in the
+ ./tests/Reactor/server and
+ ./apps/Logger/Service_Configurator_Logger file) is both easier
+ to read and to parse automatically.
+
+Tue Mar 8 10:19:40 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Changed the behavior of the Get_Opt class so that it will
+ perform option processing starting from argv[0] rather than
+ argv[1] if the SKIP argument to the constructor is set to 0.
+ Note that the default value is 1, so the behavior is the same
+ for backwards compatibility. Incidentally, this new change is
+ necessary to support the Service Configurator stuff...
+
+ * Changed the names of some of the Service_Record member functions
+ to conform to the new idiom for naming get/set-style of member
+ function accessors...
+
+Sun Mar 6 12:47:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Removed libGet_Opt.a and merged it in with libMisc.a
+
+Sat Mar 5 18:37:43 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
+
+ * Updated the Service_Config class to use a flex/yacc based parser
+ rather than an ad hoc parser and lexer. This is useful since
+ the new syntax for configuring a complete Stream into a Service
+ Configurator-based application is more complicated...
+
+ * Made a small change to the syntax of a svc.conf file. Now any
+ parameters that are passed to the Service_Object::init() member
+ function of a dynamically linked service must be enclosed inside
+ of double quotes. In other words, service config entries such
+ as
+
+ dynamic ./dev_adapter.so:_alloc () Device_Adapter -p 3000
+
+ now become
+
+ dynamic ./dev_adapter.so:_alloc () Device_Adapter "-p 3000"
+
+ This change makes it easier to parse the input using flex/yacc.
+
+Sat Feb 12 18:53:14 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
+
+ * Modified the Reactor so that it now also demultiplexes signals,
+ as well as timer events and I/O events. This required making a
+ few sections of the Reactor code signal-safe, as well as
+ thread-safe.
+
+ * Changing the Reactor to handle signals also required a slight
+ change to its interface. For example, it is now mandatory to
+ give the Event_Handler::{READ_MASK,WRITE_MASK,EXCEPT_MASK} when
+ registering a handler...
+
+Sat Feb 5 12:10:53 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
+
+ * Changed the Condition and Monitor classes to use templates that
+ parameterize them with the appropriate type of Mutex (i.e.,
+ either Mutex or Mutex_Rec). This greatly cleans up the code...
+ Made a number of changes in other files
+ (such as the Reactor) to account for the changes.
+
+ * Added a new class called Mutex_Rec which implements a recursive
+ Mutex abstraction on SunOS 5.x. Recursive Mutexes may be
+ acquired multiple times from a single thread. Basically, this
+ supports an efficient and clean way of handling nested locking
+ conditions.
+
+Thu Feb 3 12:37:34 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
+
+ * Fixed a bug in Service_Config.i that was causing SIGHUP-driven
+ reconfiguration not to work correctly.
+
+ * Added a set of new member functions to the Reactor class to
+ suspend() and resume() an event handler. Also added suspend()
+ and resume() member functions to the Server_Object class to take
+ advantage of these new facilities automagically...
+
+Mon Jan 31 09:47:06 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
+
+ * Modified the no-args constructor for the Reactor to initialize
+ it to the DEFAULT_SIZE. The prior behavior was *not* to
+ initialize it at all, which seems rather dumb in retrospect...
+
+ * Improved the Reactor's support for multi-threading by adding a
+ pipe() call that is used to force the Reactor to reconfigure
+ itself everytime a new handler is registered or removed.
+ Previously, any new changes wouldn't take place until the
+ Reactor was triggered by some external event. This old behavior
+ was too non-deterministic...
+
+Sun Jan 2 12:35:39 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
+
+ * Modified the inheritance hierarchy for Service_Object so that it
+ derives from both Shared_Object and Event_Handler.
+ Shared_Object is a new abstract base class the provides an
+ interface for dynamic linking of objects. When RTTI is widely
+ available for C++ the Service Configurator will be much more
+ functional since we can automatically figure out whether an
+ object is a Service_Object or just a Shared_Object and do the
+ right thing with it!
+