summaryrefslogtreecommitdiff
path: root/ChangeLog-95
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog-95')
-rw-r--r--ChangeLog-954179
1 files changed, 0 insertions, 4179 deletions
diff --git a/ChangeLog-95 b/ChangeLog-95
deleted file mode 100644
index 429e5681fdc..00000000000
--- a/ChangeLog-95
+++ /dev/null
@@ -1,4179 +0,0 @@
-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.
-