1 Thu Jul 3 20:36:19 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
3 * performance-tests/Misc/childbirth_time.cpp: Changed the
4 parameter type of "Profiler" from int to size_t to make g++
7 Thu Jul 03 20:03:18 1997 David L. Levine <levine@cs.wustl.edu>
9 * ace/Reactor.cpp (remove_handler): added ACE_UNUSED_ARG
12 Wed Jul 2 23:41:43 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
14 * performance-tests/Misc/childbirth_time.cpp: Fixed some typos.
16 Wed Jul 2 23:13:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
18 * performance-tests/Misc/childbirth_time.cpp: Revised the
19 code to use ACE programming style.
21 Wed Jul 02 23:02:24 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
23 * ACE version 4.2.15, released Wed Jul 02 23:02:24 1997.
25 Wed Jul 2 22:23:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
27 * ace/Service_Config.cpp: Used the new ACE_LACKS_UNIX_SIGNALS
28 macro to reduce the #ifdef complexity somewhat.
30 * ace/config-{chorus,win32-common}.h: Added #define for
31 ACE_LACKS_UNIX_SIGNALS.
33 * ace/OS.h: If a platform (e.g., Chorus) doesn't support signals
36 * ace/Reactor.cpp: Chorus does not support signals. Make the call
37 to register/remove_handler(sig_set, evnet_handler) return
38 succesfully so that some of the examples and test programs do
39 not need to be changed. Thanks to Wei Chiang for this.
41 * ace/config-chorus.h: Added a new macro for
42 ACE_LACKS_NAMED_POSIX_SEM to handle Chorus. Thanks to Wei
45 * ace/OS.i: Define macros ACE_PTHREAD_CLEANUP_* so that the
46 related code does not need to be surrounded with #ifdefs.
47 Thanks to Wei Chiang for this.
49 * ace/OS.i: Chorus does not support named semaphores. The code
50 that to do with names in sema_init() and sema_destory() is
51 therefore disabled. Thanks to Wei Chiang for this.
53 * ace/config-chorus.h: Added support for ACE_LACKS_PTHREAD_CLEANUP
54 and ACE_HAS_POSIX_SEM to the Chorus port. Thanks to Wei Chiang
57 Wed Jul 2 17:37:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
59 * ace/Hash_Map_Manager.cpp: Clarified the behavior of close_i() a
62 Wed Jul 2 09:54:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
64 * ace/Hash_Map_Manager.cpp: Fixed a couple more size_t->u_long
65 conversions for ACE_Hash_Map_Manager::hash(). This didn't harm
66 anything but it's good to be consistent.
68 Wed Jul 2 16:46:59 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
70 * performance-tests/Misc/childbirth_time.cpp: Added this program
71 to measure child process/thread creation mechanisms on various
72 platforms. Native thread creation test only supports Solaris
73 and NT threads so far. But you can still use ACE_OS::thr_create
74 method on your platform if not supported.
76 Wed Jul 2 15:59:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
78 * ace/High_Res_Timer.cpp: Created a function get_registry_scale_factor
79 that finds out the speed of the processor using the NT registry (in
80 megahertz). This means that ACE_High_Res_Timers should automatically
81 get the correct scale factor.
83 * tests/Timer_Queue_Test.cpp: Removed the call to
84 get_env_global_scale_factor().
86 Wed Jul 2 15:39:33 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
88 * ace/Process.cpp: Modified spawn to check for the NO_EXEC
89 flag after forking on UNIX. If it's set, spawn returns the
90 child pid without exec'ing. Updated the NT version to
91 always return the child pid on success.
93 Wed Jul 02 10:55:23 1997 David L. Levine <levine@cs.wustl.edu>
95 * tests/SPIPE_Test.cpp,UPIPE_SAP_Test.cpp: tweaked the static
96 functions a bit to avoid warnings about unused statics on VxWorks.
98 Wed Jul 02 00:16:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
100 * ACE version 4.2.14, released Wed Jul 02 00:16:07 1997.
102 Tue Jul 1 22:49:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
104 * ace/Strategies_T.h: Changed the return value of all the hash()
105 methods to be u_long.
107 * tests/Map_Manager_Test.cpp (hash): Changed the return value of
108 all the hash() methods to be u_long.
110 * ace/SString.cpp: Changed the return value of all the hash()
111 methods to be u_long.
113 * ace/Hash_Map_Manager: Changed the return value of hash()
114 to return a u_long in order to (1) be consistent with
115 the return value of hash_pjw() and (2) give the maximal
116 range for the hash function. Thanks to Marina Spivak
117 <marina@cs.wustl.edu> for reporting this.
119 Tue Jul 01 14:47:22 1997 David L. Levine <levine@cs.wustl.edu>
121 * ace/High_Res_Timer.{h,i} (gettime): use gettime () static function
122 to wrap all calls to ACE_OS::gethrtime (). On ACE_WIN32, if the
123 global scale factor has not been set, then gettime () uses
124 ACE_OS::gettimeofday () instead of ACE_OS::gethrtime (), because
125 gettimeofday doesn't need the scale factor.
127 Mon Jun 30 17:28:53 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
129 * Makefile (RELEASE_FILES): Removed the rpc++ directory from the
130 main release since this doesn't seem to be widely used and the
131 GPL copyleft confuses people.
133 Mon Jun 30 15:08:04 1997 David L. Levine <levine@cs.wustl.edu>
135 * include/makeinclude/platform_vxworks5.x_g++.GNU: added -lgcc
138 Mon Jun 30 12:00:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
140 * ACE version 4.2.13, released Mon Jun 30 12:00:02 1997.
142 Sat Jun 28 08:27:27 1997 David L. Levine <levine@cs.wustl.edu>
144 * ace/OS.h: added definitions of ACE_SHLIB_HANDLE and
145 ACE_DEFAULT_SHLIB_MODE on platforms other than
146 ACE_HAS_SVR4_DYNAMIC_LINKING and hpux.
148 * ace/OS.i: split definitions of ACE_OS::cond_* member
149 functions into two: for ACE_WIN32/VXWORKS and all others.
150 That allows us to break the circular dependencies between
151 those functions and the ACE_OS::sema_* member functions.
153 * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
154 assignments in "if" conditionals with parenthesis to avoid
157 * ace/{ACE,INET_Addr,OS}.cpp (VxWorks only): added ACE_UNUSED_ARG
160 * ace/Parse_Node.cpp (ACE_Stream_Node,ACE_Dynamic_Node,ACE_Dummy_Node
161 constructors): reordered initializers to match declaration order.
163 * ace/Profile_Timer.h (elapsed_time): commented out unused arg "et".
165 * ace/Read_Buffer.cpp (rec_read): initialized local variable "c" to
166 make sure that it is always defined before use.
168 * ace/SPIPE_Acceptor.cpp (remove): don't declare local variable
169 "result" if ! ACE_HAS_STREAM_PIPES, because it's not used in
172 * ace/config-vxworks5.x-g++.h: added ACE_LACKS_IOSTREAM_FX,
173 ACE_LACKS_LINEBUFFERED_STREAMBUF, and ACE_LACKS_SIGNED_CHAR.
175 * ace/IOStream_T.h (ipfx): comment out unused variable "need".
177 * platform_vxworks5.2_g++.GNU: added -Wall now that the ACE library
178 builds cleanly with it.
180 * platform_vxworks5.x_g{++,hs}.GNU: renamed 5.x instead of 5.2.
182 * netsvcs/lib/Token_Handler.cpp: reordered initializers to match
185 * tests/SV_Shared_Memory_Test.cpp: moved template specializations
186 so that they're not done on platforms that don't support SV IPC.
188 * examples/IOStream/client/iostream_client.cpp,
189 examples/IOStream/server/iostream_server.cpp:
190 use ACE_HAS_STRING_CLASS rather than __GNUC__ to determine whether
191 the platform has a String class.
193 Fri Jun 27 13:10:46 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
195 * ace: Changed the name of config-vxworks5.2-g++.h to
196 config-vxworks5.x-g++.h since it works with 5.2 and 5.3.
198 * examples/Mem_Map/IO-tests/IO_Test.cpp: Fixed some bugs that were
199 preventing this from running correctly.
201 Fri Jun 27 13:37:37 1997 Steve Huston <shuston@riverace.com>
203 * ace/Svc_Conf.y: Finished the sanity checks started below.
205 Fri Jun 27 11:55:13 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
207 * ace/Timer_Queue_T.cpp: added a check for an empty queue in expire
209 Fri Jun 27 07:53:58 1997 David L. Levine <levine@cs.wustl.edu>
211 * tests/Message_Queue_Notifications_Test.cpp (handle_output,
212 handle_exception,main): added ACE_UNUSED_ARG (fd) to avoid
213 compilation warnings about unused arguments.
215 Fri Jun 27 01:08:54 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
217 * ace/Connector.cpp (create_AST): Replaced the gratuitous #ifdef
218 for ACE_WIN32 and EXCEPT_MASK with the new CONNECT_MASK. This
221 * ace/Event_Handler.h: Added a new CONNECT_MASK that defaults to
222 READ_MASK | WRITE_MASK (with | EXCEPT_MASK thrown in for Win32).
223 Thanks to Irfan for this suggestion.
225 Thu Jun 26 19:53:11 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
227 * ace/OS.i (strtok_r): Added check on a null string so we won't go
228 past the end of a string.
230 * performance-tests/Misc/context_switch_time.cpp (main): Added
231 get_env_gloval_scale_factor() at the very beginning so that high
232 resolution timer can return correct time in millisecond.
234 Thu Jun 26 15:29:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
236 * tests/Timer_Queue_Test.cpp: Changed the random scheduling to use
237 past times instead of future time. This should fix some unusual
238 behavior of this test. Thanks to Gonzalo A. Diethelm
239 <gonzo@ing.puc.cl> for reporting this.
241 Thu Jun 26 12:38:16 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
243 * ACE version 4.2.12, released Thu Jun 26 12:38:16 1997.
245 Thu Jun 26 01:11:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
247 * ace/Svc_Conf.y: Added some sanity checks to make sure we don't
248 segfault when things go wrong during the svc.conf file parsing.
249 Thanks to Steve Huston for this suggestion.
251 Thu Jun 26 08:36:37 1997 David L. Levine <levine@cs.wustl.edu>
253 * Makefile: fix UPTODATE check (for release target) by not
254 running it in a sub-shell. Also, added ACE-lessons.html
257 * performance-tests/Misc/context_switch_time.cpp: use same priority
258 values on Win32 platforms as on Solaris, because thread priority
259 increases with increasing priority values on both of those platforms.
261 Thu Jun 26 01:34:46 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
263 * performance-tests/Misc/misc.{mak,mdp}: Added makefile for NT.
265 * ace/{FILE,DEV}.{h,i}: Added the disable(int signum) function to
266 prevent NT from disabling a FILE/DEV using socket calls.
268 Wed Jun 25 12:59:00 1997 <irfan@TWOSTEP>
270 * ace/Synch_T.h (ACE_SYNCH_PROCESS_MUTEX and
271 ACE_SYNCH_NULL_MUTEX): Added new template typedef to the list.
273 * tests/Message_Queue_Notifications_Test.cpp: New test for
274 demonstrating notification qualities of Message_Queue.
276 * ace/Strategies.h: Added accessors to these classes to make them
279 Wed Jun 25 10:47:34 1997 Steve Huston <shuston@riverace.com>
281 * ace/Parse_Node.cpp: Insure that ACE_Object_Node::symbol(void)
282 returns 0 if the underlying shared library can't be loaded.
284 * ace/OS.h: Added a new type, ACE_SHLIB_HANDLE to allow dynamic
285 linking using correct types on all platforms that support it.
286 Also added a const ACE_SHLIB_DEFAULT_MODE for the 'mode' argument
287 when doing a dlopen-like operation.
288 Moved the ACE_OSCALL_* macros to this file from OS.i
290 * ace/OS.i: Moved ACE_OSCALL_* macros out of here and into OS.h.
291 Added support for dlopen/close/sym/error on HP-UX. Note - the
292 Service_Configurator tests do not run yet on HP - I'm working on
295 * ace/Service_Record.{h, i, cpp}: Use new ACE_SHLIB_HANDLE type for
296 dynamic loading operations.
298 * ace/Parse_Node.{h, cpp}: Use new ACE_SHLIB_HANDLE where appropriate.
300 * ace/Strategies_T.cpp: Use new ACE_SHLIB_HANDLE type.
302 Wed Jun 25 02:36:05 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
304 * ace/OS.i (gmtime_r): Modified the implementation of gmtime_r
305 when OS doesn't provide one. Notice that the implementation
306 only simulate the semantic and is not thread-safe.
308 * ace/OS.h: Moved definition of ACE_SHLIB_HANDLE typedef and
309 ACE_DEFAULT_SHLIB_MODE global variable for Win32 to where it
312 * ace/OS.i: Changed the return type of dlopen() when ACE_HAS_UNICODE to
315 * ace/OS.{h,i}: Moved ACE_OSCALL and ACE_OSCALL_RETURN for WIN32
318 Wed Jun 25 01:23:58 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
320 * ace/OS.i (strtok_r): Modified the implementation when OS does
321 not provide reentrant strtok_r so that our imp. comforms with
322 the semantic of strtok_r ().
324 Wed Jun 25 00:37:56 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
326 * ACE version 4.2.11, released Wed Jun 25 00:37:56 1997.
328 Tue Jun 24 21:30:53 1997 David L. Levine <levine@cs.wustl.edu>
330 * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
331 assignments in "if" conditionals with parenthesis to avoid
334 Tue Jun 24 18:15:46 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
336 * ace/Reactor.cpp (wait_for_multiple_events): Modified the way to
337 manipulate timeout value so that we can differentiate when there
338 are timeout events to be handle from no timer and we want to
341 Tue Jun 24 16:52:22 1997 David L. Levine <levine@cs.wustl.edu>
343 * ace/OS.h: reverted ACE_hrtime_t to unsigned __int64 with VC++.
344 This might break something, but we need to know what.
346 Tue Jun 24 16:38:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
348 * Added Visual C++ 5.0 specific workspace (.dsw) and project (.dsp)
349 files to both the ace and tests subdirectory. ACE.DSW in the root
350 directory contains all the project files, so a batch build should
351 be able to build all the project files.
353 Tue Jun 24 14:27:47 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
355 * ace/Timer_{Hash,Heap,List,Wheel}_T.cpp: Changed cancel (type..)
356 to call cancellation() even if there are no timers to cancel.
357 This causes the correct behavior of calling handle_close ()
358 during expire when handle_timeout() returns -1. Thanks to
359 Hamutal Yanay <hamutal_yanay_at_quantum@mail.icomverse.com> for
362 * tests/Timer_Queue_Test.cpp: Updated to correctly test this.
364 Tue Jun 24 13:02:51 1997 David L. Levine <levine@cs.wustl.edu>
366 * ace/SString.h (ACE_SString ctor): changed "allocator" to "alloc".
367 Thanks to Brian Mendel <bmendel@mdc.com> for reporting this.
369 Tue Jun 24 12:58:28 1997 James C Hu <jxh@lambada.cs.wustl.edu>
371 * include/makeinclude/platform_irix6.4*: Shuts up useless warnings
372 about multiply defined template instances.
374 Tue Jun 24 12:50:52 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
376 * ACE version 4.2.10, released Tue Jun 24 12:50:52 1997.
378 Tue Jun 24 00:44:30 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
380 * ace/SPIPE.{h,i}: Added the disable(int signum) function to
381 prevent NT from disabling an SPIPE using socket calls.
383 Mon Jun 23 22:14:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
385 * ace/Svc_Conf*: Changed the name of the YYSTYPE field
386 ACE_Static_Node_ to static_node_ to be consistent with the other
389 Mon Jun 23 18:28:55 1997 David L. Levine <levine@cs.wustl.edu>
391 * ace/ACE.cpp: added auto_basic_array_ptr specialization.
393 * ace/Service_Config.cpp, tests/Future_Test.cpp,
394 examples/Threads/future[12].cpp: added auto_basic_ptr
397 * include/makeinclude/platform_vxworks5.2_g++.GNU:
398 reworked to supported different targets, instead of only PowerPC.
400 Mon Jun 23 16:06:35 1997 James C. Hu <jxh@swarm.cs.wustl.edu>
402 * ace/OS.i: Moved definition of sema_* methods to follow cond_*
403 methods to remove compiler warnings on SGI.
405 Mon Jun 23 09:42:08 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
407 * tests/Timer_Queue_Test.cpp: added testing for cancellation
408 during expire (when of handle_timeout() in an event handler
411 Mon Jun 23 09:18:39 1997 David L. Levine <levine@cs.wustl.edu>
413 * Makefile: added up-to-date check for "make release" from
414 /project/adaptive/ACE_wrappers. Also, "make release" now
415 adds release entry to latest ChangeLog.
417 * ace/Makefile: build shared library before static library.
418 This appears to fix a problem with Sun C++ 4.{1,2} possibly
419 related to its template instantiation scheme. If the
420 static library is built first, then .shobj/Reactor.so
421 and .shobj/Timer_Hash.so (and possibly others) fail to
422 build due to ACE_TimeValue::normalize () "relocations remain
423 against allocatable but non-writable sections".
424 Thanks to Steve Huston <shuston@riverace.com> and
425 Satoshi Ueno <satoshi.ueno@gs.com> for reporting this, and
426 to Satoshi for verifying the fix.
428 * ace/ACE.cpp (terminate_process): removed used of
429 ACE_OSCALL_RETURN macro because its defined in OS.i, and so
430 not available if inlining is disabled.
432 * ace/Auto_Ptr.{h,i}: made "p_" protected instead of private
433 so that it can be accessed with the new class arrangement.
434 Also, made the auto_array_ptr operator-> const.
436 * ace/Sched_Params.cpp (previous_priority, VxWorks only):
437 removed ACE_UNUSED_ARG (policy) because policy is used in
440 * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): wrapped TCHAR
441 argument to sizeof in parenthesis.
443 Mon Jun 23 09:12:04 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
445 * ace/Auto_Ptr.i (auto_array_ptr): Fixed a typo.
447 Mon Jun 23 08:03:46 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
449 * ace/Auto_Ptr.h: changed inheritance of auto_basic_array_ptr in
450 auto_array_ptr to include the template parameter X.
452 * ace/IOStream_T.i: removed default parameter in the definition
453 of ACE_Streambut_T::recv_n() and ACE_SOCK_Dgram_SC::recv_n()
455 Mon Jun 23 01:13:15 1997 <irfan@TWOSTEP>
457 * ace/OS.cpp (fork_exec): Fixed the usage of ACE_WIDE_STRING.
459 * test_registry_iterator.cpp (main): Fixed the usage of
462 * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): Fixed the usage
465 * ace/Auto_Ptr.h: Added support for basic types by seperating the
466 auto_ptr classes into two. One that requires the -> operator
467 support and the other that does not. The former inherits from
470 * ace/{FILE,DEV,SPIPE}_Addr.h: Added support for multibyte and
471 wide character addr_to_string and string_to_addr functionality.
473 * ace/Connector.cpp && ace/Acceptor.cpp (info): Fixed sizeof bug.
475 * examples/Connection/blocking/SPIPE: Added UNICODE support for
478 * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING.
480 * ace/ACE.cpp (terminate_process): Fixed unused args errors.
482 Sun Jun 22 09:58:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
484 * Released version 4.2.9 for testing.
486 * ace/Log_Msg.cpp (open): Changed the use of ACE_LOG_MSG-> within
487 the open() method to use this-> in order to avoid deadlocks.
488 Thanks to Per Andersson for reporting this.
490 * ace/ACE.cpp: Changed the use of __SVR4 and __unix to sparc and
491 unix to work better with various UNIX environments. Thanks to
492 Michael R. MacFaden <mrm@cisco.com> for these changes.
494 * ace/Handle_Set.cpp (count_bits): Added special code to handle
495 the case where fdmask is typedef'd as a long rather than an int.
496 Thanks to Eric Newton <ecn@smart.net> and James Johnson for
499 * ace/IOStream.h: Changed the name of QuotedString to
500 ACE_Quoted_String to be consistent with the ACE naming scheme.
501 Thanks to James Johnson for suggesting this.
503 * ace/IOStream_T.i: Added this new file to split off the inlined
504 code from the header file.
506 * ace/ACE.cpp (terminate_process): Remove the
507 ACE_UNUSED_ARG(signum) from terminate_process(). Thanks to Wei
508 Chiang for reporting this.
510 Sun Jun 22 17:19:18 1997 David L. Levine <levine@cs.wustl.edu>
512 * examples/Threads/process_manager.cpp (main): replaced call to
515 Sat Jun 21 10:48:34 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
517 * examples/Reactor/FIFO: Added a new example that illustrates
518 how the Reactor and the FIFO wrappers work together. Thanks
519 to Johannes Gutleber <Johannes.Gutleber@cern.ch> for sending
522 * tests/Time_Service_Test.cpp (main): Replaced the kill() call
523 with the terminate() call since kill() isn't portable across
526 * ace/Process: The kill() method on this class was being used
527 incorrectly. I've created a new method called terminate() that
528 terminates the process.
530 * ace/Process_Manager: Renamed the kill() method to terminate()
531 and updated the implementation to use the new
532 ACE::terminate_process() call.
534 * ace/ACE: Moved the incorrect Win32 and Chorus implementations of
535 ACE_OS::kill() and put them in a new static method called
536 ACE::terminate_process().
538 * ace/ACE: Changed the name of the is_process_active() to the
539 more concise process_active().
541 * ace/OS.i: Added an implementation of ACE_OS::kill() for Chorus.
542 Note that this doesn't behave as UNIX does -- it kills the
543 process id rather than sending a signal! Thanks to Wei Chiang
544 <chiang@tele.nokia.fi> for these fixes.
546 * examples/Reactor/Misc/notification.cpp: Added patches to run
547 this example under Chorus. Thanks to Wei Chiang
548 <chiang@tele.nokia.fi> for these fixes.
550 * ace/Connector.cpp (create_AST): Changed the order of some
551 instructions in Connector::create_AST method to make it more
552 safer to use in multi-thread environment. Thank to Paul Han
553 <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
555 * ace/Connector.cpp (create_AST): Make sure to pass in the "mask"
556 when calling remove_handler() so that we get the right set of
557 bits removed from the Reactor.
559 * tests/Reactor_Timer_Test.cpp (class Time_Handler): Changed int
560 to long to avoid type conversion problems on 64 bit SGI. Thanks
561 to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
563 * examples/Reactor/FIFO: Added a test program to illustrate the
564 interaction of the ACE Reactor with the FIFO IPC mechanism.
565 Thanks to Johannes Gutleber <Johannes.Gutleber@cern.ch> for this
568 * examples/Reactor/Misc/pingpong.cpp: Added support for Chorus.
569 Thanks to Wei Chiang <chiang@tele.nokia.fi> for this.
571 * ace: Added a number of minor changes to signal assignment
572 code so that ACE will compile with Tandem NonStop. Thanks
573 to Jan Perman <uabjjpp@osd.ericsson.se> for these fixes.
575 * ace/config-tandem.h: Added a new config file for the
576 Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman
577 <uabjjpp@osd.ericsson.se> for contributing this.
579 * include/makeinclude/platform_tandem.GNU: Added a new platform
580 file for the Tandem NonStop-UX 4.2MP platform. Thanks to
581 Jan Perman <uabjjpp@osd.ericsson.se> for contributing this.
583 * ace/config-unixware-2.1.2-g++.h: Added a new config file for
584 UNIXWARE 2.1.2. Thanks to Ganesh Pai (gpai@voicetek.com) for
587 * include/makeinclude/platform_unixware_g++.GNU: Updated the
588 UNIXWARE platform config file to work for version 2.1.2. Thanks
589 to Ganesh Pai (gpai@voicetek.com) for contributing this.
591 * ace/Handle_Set.cpp (count_bits): Added another 0xff mask to
592 prevent problems with sign extension on machines with 32 bit
593 ints and 64 bit longs. Thanks to James Johnson for reporting
596 * ace/OS.h: Updated all of the ACE_DEFAULT* macros in OS.h so that
597 they can be overridden by #defines in the config.h file. Thanks
598 to Chuck Gehr for suggesting this.
600 Thu Jun 19 22:20:20 1997 David L. Levine <levine@cs.wustl.edu>
602 * ace/OS.h (VxWorks/g++ only): added horrible hack to work around
603 mismatch of memcmp, etc., prototypes in <string.h>.
605 * ace/OS.i: reordered many function definitions to avoid use
606 before definition. Building with g++ 2.7.2 on VxWorks 5.3.1
609 * ace/config-vxworks5.2-g++.h: removed ACE_HAS_STRING_CLASS and
610 ACE_HAS_GNU_CSTRING_H, because those aren't distributed with
613 Thu Jun 19 15:31:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
615 * ace/Timer_Wheel_T.cpp: Fixed problem with expire () not
616 expiring timers with a timeout of the current time. This was
617 causing problems with Timer_Queue_Test when high profile
618 timers were disabled (such as Windows NT when the
619 environment variable ACE_SCALE_FACTOR was undefined)
621 Wed Jun 18 19:43:35 1997 David L. Levine <levine@cs.wustl.edu>
623 * ace/Signal.cpp: 'removed "const" from #define of
624 ACE_MAX_SIGNAL_HANDLERS because it broke Irix 6.2 build. Thanks
625 to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
627 * examples/Threads/task_four.cpp (Invoker_Task::svc): fixed typo,
628 n_tasks instead of ntasks.
630 Wed Jun 18 11:25:14 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
632 * examples/Threads/{task_four,token}.cpp: Changed the use of
633 cerr/cout to ACE_DEBUG macro. Thanks to Chuck Gehr
634 <gehr@sweng.stortek.com> for pointing these out.
636 Tue Jun 17 15:11:09 1997 David L. Levine <levine@cs.wustl.edu>
638 * ace/config-sunos5.5-sunc++-4.x.h,
639 include/makeinclude/platform_sunos5_sunc++.GNU: support enabling of
640 exception handling via "exceptions=1" make flag. Exception handling
641 does seem to work with Sun C++ 4.2, even on MP machines, if patch
642 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
643 is applied. Please beware that enabling of exception handling can
644 adversely affect peformance, even if the program doesn't use it.
645 So, we haven't enabled it by default. Thanks to Chris Cleeland
646 for suggesting not to enable it by default.
648 * ace/IOStream.h: added #include of "ace/config.h" so that
649 ACE_LACKS_ACE_IOSTREAM can be checked. Thanks to Ganesh Pai
650 <gpai@voicetek.com> for reporting this problem.
652 * ace/ACE.cpp (get_handle): use /dev/udp instead of /dev/ip on
653 SVR4 machines because it has other read permission by default
656 * ace/ACE.cpp (get_ip_interfaces): use auto_array_ptr instead of
657 auto_ptr so that the array gets deleted properly, and zero it
658 out to avoid unitialized memory read reports from Purify.
660 * ace/Timer_Hash_T.cpp (cancel): added "[]" to delete of timer_ids
663 * Timer_Queue_Test.cppc (test_performance): added "[]" to delete of
664 times array. Purify rules.
666 Tue Jun 17 15:31:01 1997 Steve Huston <shuston@riverace.com>
668 * ace/ACE.cpp: Fixed get_ip_interfaces (and count_interfaces) to
669 work properly on HP-UX (and probably other similar UNIXes). Needed
670 to work with non-IP interfaces present, and fixed to copy the
671 IP address without the fudge factor being applied.
673 Tue Jun 17 14:02:01 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
675 * ace/{Free_List.h,Free_List.cpp,Timer_Queue_T.h}: Added #include
676 "ace/Synch_T.h" to Free_List.h and removed related inclusion
677 from Free_List.cpp and Timer_Queue_T.h. Thanks to
678 Jack Erickson <jack@cibc.com> for reporting this problem.
680 Tue Jun 17 09:41:48 1997 David L. Levine <levine@cs.wustl.edu>
682 * tests/Enum_Interfaces_Test.cpp: changed name of log file to match
683 the program name, so that the one-button test can easily find it.
685 Tue Jun 17 04:58:38 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
687 * ace/Timer_Queue_T.h: Added include file "ace/Synch_T.h" to avoid
688 compilation errors in SC 4.1. We didn't notice this because
689 most of us have moved to SC 4.2. Don't know why this didn't
690 cause any problem in SC 4.2. Thanks to Jack Erickson
691 <jack@cibc.com> for reporting this bug.
693 Mon Jun 16 22:25:18 1997 Steve Huston <shuston@riverace.com>
695 * ace/ACE.cpp: Fixed conditional compiles to compile the
696 interface counting code for HP - it reports 0 interfaces,
697 so it needs more debugging still.
699 * include/makeinclude/platform_hpux_aCC.GNU: added -g to link
700 command for building shared library.
702 * tests/Buffer_Stream_Test.cpp: fixes to execute correctly and only
703 fail assertions on real failures.
705 Mon Jun 16 19:05:13 1997 Steve Huston <shuston@riverace.com>
707 * ace/Free_List.cpp: added #include ace/Synch.h, needed by
708 Free_List.i. Fixes compile errors on HP-UX.
710 Mon Jun 16 10:59:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
712 * ace/Timer_Wheel_T.cpp: Changed expire () so it doesn't
713 access past the end of an array when it finds nothing to
714 expire. Thanks to Norbert Rapp
715 <norbert.rapp@nexus-informatics.de> for catching this.
717 Sun Jun 15 03:44:21 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
719 * examples/Threads/thread_specific.cpp (worker): Changed the
720 output of diagnostics from using cout to using printf. Also
721 corrected several portability problems. Thanks for Chuck Gehr
722 <gehr@sweng.stortek.com> for pointing these out.
724 * ace/OS.i (thread_mutex_trylock): Corrected the code for NT. Now
725 this function returns 0 if lock is obtained and -1 otherwise.
726 Thanks to Robert V. Head <rhead@virtc.com> for noticing this.
728 * performance-tests/Synch-Benchmarks/Synch_Tests.{mdp.mak}:
729 Added project workspace and makefile for NT to this directory.
731 * performance-tests/Synch-Benchmarks/svc.conf:
732 * performance-tests/Synch-Benchmarks/{Options,Benchmark}.h:
733 * performance-tests/Synch-Benchmarks/*.cpp: Reworked these
734 files to have them compiled on NT.
736 Sat Jun 14 03:53:13 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
738 * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp (class
739 Pipe_Proc_Test): Changed the type of pipe_handles[] from int to
742 * performance-tests/Synch-Benchmarks/sysvsema_test.cpp: When
743 creating the semaphore, explicitly cast the key value to (key_t)
744 since NT couldn't handle the conversion.
746 Fri Jun 13 19:32:03 1997 Steve Huston <shuston@riverace.com>
748 * ace/ACE.cpp: Fixed count_interfaces to compile on non-SVR4
749 systems such as HP-UX. Not tested yet.
751 * ace/OS.i: Fixed mis-arranged conditional compile for HP-UX in
754 Fri Jun 13 03:13:51 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
756 * ace/config-win32-common.h: Added a "pragma comment" directive to
757 direct MSVC to link in mswsock.lib automatically. Thanks to
758 Bill Tang <btang@magellan.com> for reminding this.
760 * ace/ace.{mak,mdp}: Removed explicit inclusion of mswsock.lib.
761 Thanks to Bill Tang <btang@magellan.com> for reminding this.
763 * examples/OS/Process/Process.{mdp,mak}: For some reasons, I got
764 an "unknown link error, please refer to documentation for
765 appropriate technical supports" when building this example on NT
766 (didn't help much, did it?) Reassigning the linked library
769 * examples/OS/Process/process.cpp: Updated class name
770 ACE_ProcessEX to ACE_Process because ACE_ProcessEX no longer
771 exists. Also, all exec'ed programs' absolute names have been
772 changed and let the environment variable "path" to decide which
775 Thu Jun 12 15:48:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
777 * ace/ACE.cpp (get_ip_interfaces): Corrected code in the BSDish
778 section so that it at least compiles on Linux. I haven't tested
781 * ace/Timer_Queue_T.cpp (calculate_timeout): When this was called
782 with the default argument from handle_events(), max_timeout was
783 passed as zero, which would cause a SEGV when attempts were made
784 to deref it. Added protection to simply return a zero ptr in that
787 Thu Jun 12 13:18:03 1997 Steve Huston <shuston@riverace.com>
789 * ace/OS.{h,i,cpp}: Changes for HP-UX 10 primarily. Threads
790 support for DCE Draft 4 threads (bundled with HP-UX 10).
791 Correct usage of reentrant C library functions for HP-UX.
793 * ace/OS.i: Changed timeout argument to 2nd select function to
794 allow the compiler to pick a conversion operator. As it was,
795 HP compiler would not compile it.
797 * ace/Service_Object.cpp: When deleting the service memory pointed
798 to by a void *, use "operator delete" rather than deleting a void,
799 which is prohibited by the current ANSI C++ draft.
801 * ace/config-hpux-10.x.h: This is now a compiler-independent header
802 file, and is included by config-hpux-10.x-hpc++.h. This file
803 contains all correct settings for HP-UX 10.x, and compiler-specific
804 config files should use this - see config-hpux-10.x-hpc++.h.
806 * ace/config-hpux-10.x-hpc++.h: New config file for either of the HP
807 compilers (HP C++ or HP aC++). It figures it out internally, and
808 uses config-hpux-10.x.h for OS details.
810 * include/makeinclude/rules.lib.GNU: Allow for doing a PRELIB step
811 when building a shared library, and not using .shobj/*.so files.
812 This allows HP aC++ to close all template instantiations for the
813 entire library at once, rather than separately, reducing the
814 size of the resultant library significantly.
816 * include/makeinclude/platform_hpux-aCC.GNU: build libraries with
817 templates instantiated all at once. Compile with flags for using
818 the reentrant versions of C library functions.
820 Wed Jun 11 15:20:15 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
822 * ace/Timer_Queue_T.{h,cpp} (calculate_timeout): Changed the
823 second parameter the_timeout from a ref. to a ptr. to a ptr in
824 order to avoid compilation warning. Since the pointer itself is
825 not modified within the function, it's ok to change this.
827 * ace/Reactor.cpp (wait_for_multiple_events): Added ACE_Time_Value
828 the_timeout as a place holder for timeout value when
829 max_wait_time is NULL. Otherwise,
830 Timer_Queue::calculate_timeout won't process the timer queue
833 Wed Jun 11 11:14:29 1997 James C Hu <jxh@lambada.cs.wustl.edu>
835 * include/makeinclude/platform_mvs.GNU (RANLIB): Requested change
836 from Check Gehr (gehr@sweng.stortek.com), RANLIB = echo
838 Wed Jun 11 04:47:52 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
840 * ACE.cpp (count_interfaces): Two bugs were corrected here. Both
843 * tests/Timer_Queue_Test.cpp: Added include file ace/Timer_Queue.h
845 Tue Jun 10 16:02:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
847 * ace/SString.{h,cpp}: Changed the parameters in CString::substring()
848 and WString::substring(). Removed const and changed length to a
849 ssize_t because of signed/unsigned comparison warnings.
851 * ace/ACE.cpp: Changed a loop variable in get_ip_interfaces() to
852 a size_t because of a signed/unsigned comparison warning.
854 Tue Jun 10 12:47:49 1997 <irfan@TWOSTEP>
856 * ace/SString.cpp (operator = and operator +=): There were two
857 bugs here. operator= forgot to tack on the NULL terminator
858 after the memcpy() and operator+= appended the second string
859 incorrectly. Thanks to Michael R. MacFaden <mrm@cisco.com> for
862 Tue Jun 10 12:16:04 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
864 * ace/Makefile: Updated to reflect newly added files
866 * ace/Proactor.cpp: Removed template specializations.
868 * ace/Reactor.cpp: Removed some template specializations.
870 * ace/Timer_Hash.h: Added an include for Timer_Heap.
872 * ace/Timer_Hash_T.cpp: Changed a reference to ACE_Timer_Node
873 to ACE_Timer_Node_T<TYPE>
875 * ace/Timer_{Hash,Heap,List,Wheel}_T.h: Changed #include
876 "ace/Timer_{...}.h" to "ace/Timer_{...}_T.h".
878 * ace/Timer_Queue.cpp: Removed some template specializations.
880 * ace/Timer_Queue.h: Removed the including of Timer_Queue.cpp
881 since there are no templates to warrant it.
883 * ace/Timer_{Hash,Heap,List,Wheel}.cpp: Added these and put the
884 appropriate template specializations here.
886 Tue Jun 10 02:08:25 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
888 * examples/Log_Msg/README: Revised.
890 * examples/Log_Msg/test_log_msg.cpp: Revised program output so
891 that it's clearer to explain.
893 Mon Jun 09 15:46:41 1997 <irfan@TWOSTEP>
895 * OS.i (mutex_lock): When WaitForSingleObject returns
896 WAIT_ABANDONED, the lock is held by the calling thread.
897 Therefore we must return 0 from the method. I have added a new
898 mutex_lock() method that takes an extra "abandoned" parameter.
899 This is set wehen the mutex is abandoned. Thanks to Dieter
900 Quehl <dietrich.quehl@med.siemens.de> for pointing this out.
902 Mon Jun 9 02:31:36 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
904 * tests/Sigset_Ops_Test.cpp (main): Comment out testing of invalid
905 sigset checking for most platforms don't seem to support it.
906 Perhaps the ACE's sigset* functions should remove this check for
909 Sun Jun 8 11:39:06 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
911 * ace/OS.i (set): There was a typo here where
913 ((long) (d - (double) l)) * 1000000
917 (long) ((d - (double) l) * 1000000)
919 since otherwise the values are always 0. Thanks to Jim Crossley
920 <jim@lads.com> for reporting this.
922 * tests/Enum_Interfaces_Test.cpp (main): Changed ACE_UINT32 to
923 size_t to be consistent with the class definition. Thanks to
924 Nanbor Wang for reporting this.
926 * ace/Token.h: Added some no-op method for ACE_Token so that it
927 will still compile even if ACE_HAS_THREADS isn't defined.
929 Sun Jun 8 01:37:52 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
931 * examples/Log_Msg/README: Added a README file.
933 * tests/Sigset_Ops_Test.cpp (main): bug fixed.
936 Sat Jun 7 16:40:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
938 * ace/SString.h (string.): Added a substring() member function to
939 ACE_*String classes. Thanks to Michael MacFaden <mrm@cisco.com>
940 for contributing this.
942 * ace/ACE: Added a new method called
944 int get_ip_interfaces(count, address_array)
946 which will query the OS kernel for the IP addresses for each network
947 interface found and return a count and array of ACE_INET_Addr objects.
948 The reason for adding this method is that most client apps
949 assume gethostbyname(uname|gethostname)) will work. If the
950 nameservices is misconfigured/broken or the machine is multi-homed,
951 the client apps have alot of coding to do to figure out if an inteface
952 represents a local address or not. On UNIX, this includes
953 the loopback addr. On NT, the loopback addr is not added
954 (but may change the impl if others think this useful).
955 Thanks to Michael MacFaden <mrm@cisco.com> for contributing
958 * ace/Synch[_T]: Changed all the classes so that internal instance
959 variables are now protected rather than private. This allows
960 greater flexibility if there's a need to subclass
961 (which shouldn't occur very much...). Thanks to
962 Reza Roodsari <reza@sprynet.com> for suggesting this.
964 Fri Jun 06 21:30:57 1997 David L. Levine <levine@cs.wustl.edu>
966 * ace/Timer_{Hash,Wheel}_T.cpp: added #includes of
967 ace/High_Res_Timer.h. Also, in Timer_Wheel_T.cpp (cancel),
968 moved the declaration of "i" out of the loop because it's
969 used in two different loops.
971 Fri Jun 06 17:11:13 1997 <irfan@TWOSTEP>
973 * OS.i (sleep): If ACE_POLL_IS_BROKEN is defined, use select() to
974 do micro second sleeps.
976 * ace/CORBA_Handler.h (ACE_CORBA_*): The new version of Orbix
977 (2.2C01) on NT finally supports namespaces. So now the macros
978 ACE_CORBA_n need to be defined using the "::" and not the "_"
979 for NT if the new Orbix is being used. Thanks to John Morey
980 (jmorey@tbi.com) for the changes.
982 Fri Jun 06 02:16:08 1997 <nw1@COYOTE>
984 * Sigset_Ops_Test.cpp: Added to test correct implementation of
985 sigset manipulating functions.
987 * run_tests.{sh,bat}, Makefile: Added Sigset_Ops_Test.
989 Thu Jun 05 20:32:39 1997 David L. Levine <levine@cs.wustl.edu>
991 * tests/Timer_Queue_Test.cpp (randomize_array): removed static
992 qualifier now that it's a template function. It caused a warning
995 Thu Jun 05 18:28:36 1997 <irfan@TWOSTEP>
997 * ace/Asynch_Acceptor.cpp (open): The Proactor was beening passed
998 implicitly. I have made this explicit by making this a parameter
999 to open. Thanks to MehulM@spa-marketing.com (Mehul Mahimtura)
1002 Thu Jun 5 12:06:45 1997 Chris Cleeland <cleeland@merengue.cs.wustl.edu>
1004 * ace/Timer_Queue_T.h (ACE_Timer_Queue_T): Overloaded
1005 calculate_timeout with a version that accepts a pointer to
1006 storage for the ACE_Time_Value as an argument. This has a small
1007 performance win over the other b/c it does not take a lock.
1008 The change was made after examining Quantify output for TAO
1009 and observing that this lock caused
1010 Reactor::wait_for_multiple_events() to consume a substantial
1011 percentage of processing time.
1013 * ace/Reactor.cpp (wait_for_multiple_events): This now uses a
1014 different version of calculate_timeout() that doesn't require
1017 Thu Jun 05 08:48:49 1997 David L. Levine <levine@cs.wustl.edu>
1019 * ace/Reactor.cpp: added template specializations.
1021 * ace/Timer_Queue_T.cpp (ACE_Timer_Queue_T ctor): rearranged
1022 initializers to match declaration order.
1024 Thu Jun 5 06:08:06 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
1026 * ace/OS.i (sigaddset, sigdelset, sigismember): NSIG itself is
1027 invalid and must be excluded.
1029 Wed Jun 04 21:24:35 1997 David L. Levine <levine@cs.wustl.edu>
1031 * ace/config-sunos5.5-g++.h: fixed typo: #define instead of
1032 #defined ACE_HAS_CLOCK_GETTIME.
1034 * ace/config-sunos5.5-sunc++*.h: Combined
1035 config-sunos5.5-sunc++-4.x.h and config-sunos5.5-sunc++-4.1.h,
1036 and removed the latter. The Orbix config file now #includes
1037 config-sunos5.5-sunc++-4.x.h and adds its differences.
1039 * include/makeinclude/platform_sunos5_sunc++*.GNU: Combined
1040 platform_sunos5_sunc++.GNU and platform_sunos5_sunc++-4.1.GNU,
1041 and removed the latter. platform_sunos5_sunc++_orbix.GNU now
1042 includes the non-orbix file and adds its differences. Also,
1043 added optional CC -fast support. To enable, just add "fast=1"
1044 to your "make" invocation.
1046 Wed Jun 04 12:21:41 1997 <irfan@TWOSTEP>
1048 * tests: Made the following config files consistent:
1049 UNIXclerk.conf UNIXtokens.conf Win32clerk.conf Win32server.conf
1052 * ace/OS.h: Made sure that some #defines were guarded for
1053 redefinition specially for the Bristol (that provides Win32 API
1054 on AIX) headers. Thanks to Rich Christy (rchristy@cccis.com) for
1055 suggesting these changes.
1057 * ace/Handle_Set.h: Changed the type of handle_index from int to
1058 u_int on Win32. Thanks to Jack Erickson (jack@cibc.com) for
1061 * ace/FILE.h (ACE_FILE_STREAM): Fixed this #define from
1062 ACE_FILE_Stream to ACE_FILE_IO.
1064 Tue Jun 3 21:23:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1066 * ace/Timer_{Queue,Hash}: Fixed some uses of template typedefs
1067 since GCC is too lame to handle them correctly. Therefore, I
1068 had to expand TIMER_QUEUE into the ugly fully expanded name.
1070 * ace/Timer_Queue_T.cpp: Moved the implementation of
1071 ACE_Event_Handler_Handle_Timeout_Upcall from Timer_Queue.* into
1072 Timer_Queue_T.* since only template classes should go into *_T.*
1075 Tue Jun 3 18:16:02 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
1077 * ace/Timer_Queue.*:
1079 Templatized ACE_Event_Handler_Handle_Timeout_Upcall with LOCK
1081 Added deletion() to Upcall Functors. This gets called if there
1082 are any nodes in a queue and the queue's destructor is called
1084 * ace/Timer_Queue_T.*:
1086 Changed iterator accessor to public
1088 Removed two template parameters from ACE_Timer_Node_T so only
1089 EVENT is left. Added accessors instead of using friendships,
1090 and deleted the constructor (use set() instead)
1092 Changed iterator into a general iterator (with first(), next(),
1093 isdone() and item () methods)
1095 Added remove_first () method that removes and returns the
1096 earliest timer in the queue
1098 Added ACE_Free_List support
1102 Added upcall functor deletion() support
1104 Added remove_first () method that removes and returns the
1105 earliest timer in the queue
1109 Changed to double-linked circular list and changed the timer_id
1110 to be a pointer to the node (like it is in Timer Wheel and Timer
1113 Added upcall functor deletion() support
1115 Added remove_first () method that removes and returns the
1116 earliest timer in the queue
1118 Added check for timer_id of -1 so we don't try to delete the
1119 error code if it is passed into cancel
1121 Changed Timer_List_Iterator_T constructor parameter from list to
1122 listParm to resolve a conflict with STL. Thanks to Todd
1123 Barkalow <barkate@louisville.stortek.com> for this fix
1126 Added HighRes timer support
1128 Added upcall functor deletion() support
1130 Added earliest_pos_ variable to keep track of the list with
1133 Created an expire that is specialized for ACE_Timer_Wheel
1135 Added remove_first () method that removes and returns the
1136 earliest timer in the queue
1138 Added check for timer_id of -1 so we don't try to delete the
1139 error code if it is passed into cancel
1143 Added Timer Hash Queue - This is a class that can take another
1144 timer queue type (Timer List, Timer Heap...) as a template
1145 parameter (BUCKET) and then do an intermediate hash of a timer
1146 to determine which queue among a table of timer queues to put
1147 the timer into. ACE_Timer_Hash is typedefed to the Timer List
1148 version and ACE_Timer_Hash_Heap is typedefed to the Timer Heap
1151 Added HighRes timer support
1153 Added upcall functor deletion() support
1155 Created an expire that is specialized for ACE_Timer_Hash
1157 Added remove_first () method that removes and returns the
1158 earliest timer in the queue
1160 Added check for timer_id of -1 so we don't try to delete the
1161 error code if it is passed into cancel
1165 Added ACE_Free_List<T> and ACE_Locked_Free_List<T, LOCK>. These
1166 are used to maintain free lists of nodes. ACE_Free_List is a
1167 abstract class where ACE_Locked_Free_List is a concrete one that
1168 has a mutex parameter (LOCK).
1172 Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant
1174 Added ACE_DEFAULT_FREE_LIST_* constants
1178 Added deletion() to Upcall Functors. This gets called if there
1179 are any nodes in a queue and the queue's destructor is called.
1181 * tests/Timer_Queue_Test.cpp:
1183 Added HighRes timer support
1185 Changed the array of timer queues into a list (to more easily
1186 add/remove/comment out an entry)
1188 Added some more performance tests with randomization
1190 Tue Jun 3 00:26:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1192 * ace/OS.h: Changed the access protection for ACE_cond_t,
1193 ACE_sema_t, ACE_event_t, and ACE_rwlock_t so that it is
1194 protected rather than private. In addition, added ACE_Export to
1195 all of these classes so that they are visible outside of a DLL.
1196 Thanks to Ivan Murphy for these suggestions.
1198 * ace/OS.h: Changed the value of ACE_MAX_DEFAULT_PORT on Win32 to
1199 0 in order to work around a nasty NTism... Thanks to Jon Biggar
1200 <jon@sems.com> for reporting this.
1202 Mon Jun 2 16:29:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
1205 - Fixed ACE_Process::spawn to close descriptors after having
1207 - Fixed ACE_Process::spawn to exit () after an error is
1208 encountered in the child process, rather than returning.
1209 - Fixed ACE_Process_Options::set_handles to duplicate handles
1210 that are passed in, and then to close them in the destructor.
1212 Sun Jun 01 22:21:28 1997 David L. Levine <levine@cs.wustl.edu>
1214 * examples/Threads/tss1.cpp: made some globals non-static or
1215 const so that tss1 will link with Sun C++ 4.2 -O3. I don't
1216 know what the problem is; it only shows up with optimization
1217 enabled. These fixes work around it.
1219 Sun Jun 01 20:29:20 1997 James CE Johnson <jcej@lads.com>
1222 - removed the old 4/5/97 comments
1223 - made operator>>, << on QuotedString a template
1225 This last makes QuotedString much more functional. As
1226 templated functions, the QuotedString can now be used on
1227 other iostream-type objects. The previous method of
1228 defining the function only for the type of ACE_IOStream
1229 being created was didn't provide this flexibility.
1231 Sat May 31 07:01:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1233 * ace/Log_Msg.cpp (open): To avoid handle leaks, we need to
1234 shutdown the message_queue before trying to reopen it. Thanks
1235 to Per Andersson for this suggestion.
1237 * include/makeinclude/platform_osf1_4.0.GNU: Added a new platform
1238 config file. Thanks to James Johnson for this.
1240 Fri May 30 16:25:25 1997 <irfan@TWOSTEP>
1242 * CPP-inclient.cpp (main): Properly compare to the "quit"
1243 string. Thanks to "Andre Arpin" <arpin@adan.kingston.net> for
1246 * tests/UPIPE_SAP_Test.cpp (connector): Changed the eof marker in
1249 Fri May 30 14:04:44 1997 James C Hu <jxh@lambada.cs.wustl.edu>
1251 * include/makeinclude/platform_irix6.4_sgic++.GNU: added to make
1252 things compile on latest SGI machines. Removed +pp and -woff...
1253 flags from the CCFLAGS variable. Added new -woff flags to hide
1256 * ace/config-irix6.4-sgic++*.h: copied corresponding configs from
1257 irix6.2 and removed ACE_HAS_SVR4_TIME, since this seems to be no
1258 longer true of irix6.4.
1260 Fri May 30 02:39:39 1997 <irfan@TWOSTEP>
1264 (create_AST): On Win32, added the except mask when registering
1265 with the Reactor to find out when asynchronous connects
1268 (Svc_Tuple): Made sure that the default value for the timer_id
1269 in AST is not 0. 0 is a valid timer_id. I have changed this to
1272 (handle_exception): Added this method. On
1273 Win32, the except mask must also be set for asynchronous
1276 Thu May 29 21:28:25 1997 <harrison@samba.cs.wustl.edu>
1278 * Process.*: Removed the ACE_Process_Old class.
1280 * Local_Tokens_T.*: Removed all these files. They have not been
1281 used by the token library for some time. They were mistakenly
1284 Thu May 29 02:00:14 1997 <irfan@TWOSTEP>
1286 * ACE.cpp (is_process_active): Added this method which checks if a
1287 process is still alive. Thanks to Chris (CLahey@cccis.com) for
1290 * ace/OS.i (kill): Changed PROCESS_ALL_ACCESS to
1293 * ace/ACE.cpp (bind_port): Changed the implementation of this
1294 method such that a recently used port is not used again in the
1295 next call to this method on Win32, i.e., upper limit is
1296 decreased even in the successful case. This fixes the problem on
1297 Win32 where binding to a recently used port works but the
1298 following connect fails.
1300 * ace/Acceptor.cpp (close): Added a close method that allows us
1301 to shutdown the Acceptor (without having to destroy it).
1303 * ace/Connector.cpp (close): Added a close method that allows us
1304 to shutdown the Connector (without having to destroy it).
1306 * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
1308 (handle_close): Removed this method. This code seemed to be
1309 duplicating the code in the handle_close of the proxies.
1311 (initiate_connection): Removed the code that did
1312 rescheduling. The proxies are responsible for this.
1314 * apps/Gateway/Gateway/Event_Channel.cpp
1316 (initiate_proxy_connection): Must *always* use the correct synch
1317 options while connecting.
1319 (reinitiate_proxy_connection): Always register for timeouts if
1320 we are not disconnecting. This allows us to remove duplicated
1321 logic in Proxy_Handler_Connector.
1323 The new logic of close() allows us to remove the code that use
1324 to remove the proxy from the map to prevent double deletes.
1326 (close): Changed the shutdown logic to: Tell everyone that the
1327 spaceship is here (behind the comet), close down the connector,
1328 close down the acceptor, tell everyone that it is now time to
1331 * apps/Gateway/Gateway/Proxy_Handler.cpp (handle_timeout): Must
1332 return 0, or else the timer queue will cancel the handler and
1335 * apps/Gateway/Peer/svc.conf,Makefile: We now generate a Peer
1336 shared library (instead of just an .so). The svc.conf was
1337 changed to reflect this.
1339 * tests/UPIPE_SAP_Test.cpp: Fixed output message.
1341 * Handle_Set.i (operator): Fixed typo.
1343 Thu May 29 11:09:52 1997 David L. Levine <levine@cs.wustl.edu>
1345 * include/makeinclude/rules.local.GNU: check for directory
1346 write permission before attempting to install. This helps
1347 support shared ACE workspaces. There are two easy ways
1348 to not install "private" libraries in the shared workspace:
1349 1) remove write permission from $WRAPPER_ROOT/ace, or
1350 2) add "INSTALL=" to invocations of "make".
1352 Thu May 29 06:07:18 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1354 * ace/OS.i (thr_join): Revised some code in the #ifdef'd out
1355 version of ACE_OS::thr_join() so that it will compile correctly.
1356 Note that this code isn't currently used, but someday it will
1357 be. Thanks to Hamutal Yanay for reporting this.
1359 Wed May 28 16:37:57 1997 David L. Levine <levine@cs.wustl.edu>
1361 * ace/OS.{h,i} (ACE_Time_Value): added default constructor,
1362 which does not call normalize (). ACE_Time_Value::normalize ()
1363 was showing up as a relatively minor, but signficant hot
1364 spot in Event Channel latency tests.
1366 Wed May 28 16:02:53 1997 James C Hu <jxh@lambada.cs.wustl.edu>
1368 * ace/OS.i: Changes to strdup and getpid for CHORUS, as per Wei
1369 Chiang's suggestions.
1371 Tue May 27 18:26:51 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1373 * ace/config-hpux-10.x-decthreads.h: Added support for HP/UX 10.10
1374 with DCE threads. Thanks to Shankar Krishnamoorthy
1375 <kshankar@lucent.com> for these fixes.
1377 * ace/Local_Tokens_T.h: #if def'd out all of this file since it
1378 doesn't seem to be used anymore. Thanks to Shankar
1379 Krishnamoorthy <kshankar@lucent.com> for reporting this.
1381 * ace/Makefile (TEMPLATE_FILES): Removed Local_Tokens_T since it
1382 doesn't appear to be used anywhere.
1384 Tue May 27 18:47:34 1997 James C Hu <jxh@lambada.cs.wustl.edu>
1386 * tests/*.cpp: Various changes for EBCIDIC compatibility.
1387 Thanks to Chuck Gehr for pointing out the need for this!
1389 * tests/test_config.h: Added ACE_ALPHABET to aid a-z sending and
1392 Tue May 27 15:03:25 1997 David L. Levine <levine@cs.wustl.edu>
1394 * tests/Future_Test.cpp: added ACE_Future{_Rep}<int> template
1397 Tue May 27 07:49:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1399 * ace/Future.cpp: Made a few minor reformatting changes to Per's
1400 new Future enhancements.
1402 Tue May 27 14:19:14 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
1404 * ace/Future: Fixed self assignment bug in ACE_Future<>::operator=().
1405 Fixed bug in ACE_Future<>::set(). It is now possible to do a
1406 ACE_Future<>::set() followed by a ACE_Future<>::get() without
1409 Moved all handling of the ACE_Future_Rep<> reference count
1410 into three new static ACE_Future_Rep<> member functions,
1411 create, attach, assign and detach.
1413 Removed one mutex from ACE_Future_Rep<> by changing the
1414 reference count from an ACE_Atomic_Op<int> into a plain
1415 int. The ACE_Future_Rep<>::value_ready_mutex_ mutex is
1416 instead used for serializing changes to the reference count.
1417 (ACE_Future_Rep<>::attach, ACE_Future_Rep<>::detach())
1419 Removed mutex from ACE_Future<> the serialization is
1420 performed by the ACE_Future_Rep<>::attach,
1421 ACE_Future_Rep<>::detach() and ACE_Future_Rep<>::assign()
1424 Changed the ACE_Future<> default constructor to always
1425 create a ACE_Future_Rep<>
1427 * tests/Future_Test.cpp: Added test case for
1428 ACE_Future<>::set() followed by ACE_Future<>::get(). Added
1429 test for working ACE_Future::operator=(). The test is not
1430 fool proof but it crashes or hangs the test process with the
1431 old ACE_Future<> implementation.
1433 Mon May 26 14:19:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
1435 * ace/OS.{h,i}: Fixed difftime implementation for cases where
1436 systems implement it as a macro. Fixed tempnam by adding
1439 Sun May 25 11:36:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1441 * examples/Reactor/Misc: Removed test_handle_set.cpp since it
1442 is now completed subsumed by tests/Handle_Set_Test.cpp.
1444 * tests/Handle_Set_Test.cpp: Updated the test of
1445 the ACE_Handle_Set so that it shows how fast the iterator works.
1447 * ace/Reactor.cpp: Updated the Reactor to use the new
1448 ACE_Handle_Set_Iterator (whic no longer requires calling
1449 operator++ to advance the iterator).
1451 * ace/Handle_Set: Rewrote the ACE_Handle_Set_Iterator to speed it up.
1452 The result seems to be about 15% faster than the original.
1454 * ace/OS.h: Changed the MSB_MASK static constant into a macro and
1455 moved it from Handle_Set.cpp into OS.h, changing its name to
1458 * ace/Sched_Params.cpp (priority_max): Added another #ifdef for
1459 Chorus. Thanks to Wei Chiang for reporting this.
1461 * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: added -l
1462 in front of orbixmt. Thanks to Wei Chiang for pointing this
1465 * ace/ACE.cpp: Changed the default port for NT so that it starts
1466 at 65279 rather than 65535. Hopefully, this will fix that
1467 annoying bug that has been plaguing us on NT 4.0 for months.
1468 Thanks to Goran Lowkrantz <Goran.Lowkrantz@Infologigruppen.se>
1471 Sat May 24 23:42:32 1997 David L. Levine <levine@cs.wustl.edu>
1473 * performance-tests/Misc/test_naming.cpp (do_testing): replaced
1474 strlen () calls in character array size with constant expression.
1476 Sat May 24 12:07:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1478 * Released version 4.2.1 for testing.
1480 * ace/Reactor.cpp (bind): Fixed a stupid typo where I was using
1481 the ACE_REACTOR_EVENT_HANDLER macro instead of the
1482 ACE_REACTOR_HANDLE macro. Thanks to Detlef for reporting this.
1484 * ace/OS.i: Added a new macro called ACE_HAS_THR_MINSTACK to deal
1485 with weirdo mangling of names by Tandem. Thanks to Jan Perman
1486 <uabjjpp@osd.ericsson.se> for reporting this.
1488 * ace/OS.h: Added a new macro ACE_LACKS_PRI_T for those platforms
1489 using STHREADS (e.g., Tandem NonStop OS) that don't have pri_t
1490 defined. Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for
1493 * ace/Connector.cpp (connect): Make sure to save/restore errno
1494 since svc_handler->close() may change it. Thanks to Michael
1495 Hartman <c62nt57@ibx.com> for reporting this.
1497 * include/makeinclude/platform_chorus.GNU: Added a new platform
1498 macros file for Chorus. Thanks to Wei Chang for this.
1500 * ace/OS.cpp (sched_params): Reordered the #ifdefs so that Chorus
1503 * ace/OS.i (sleep): If the platform defines ACE_HAS_CLOCK_GETTIME
1504 then we'll use the nanosleep() method rather than sleep().
1506 * ace/OS.h: disabled THR_NEW_LWP for Chorus. Thanks to Wei Chang
1509 * ace/Sched_Params.cpp: ACE_SCHED_OTHER and ACE_SCHED_RR have the
1510 same value on Chorus. Thanks to Wei Chang for reporting this.
1512 Sat May 24 09:21:08 1997 David L. Levine <levine@cs.wustl.edu>
1514 * netsvcs/lib/Server_Logging_Handler.cpp: protected second
1515 ACE_Svc_Handler specialization for case that ACE_HAS_THREADS,
1516 when ACE_HAS_TLI. It had gotten lost in the last pass of
1517 that module. Thanks to Sandro Doro <doros@aureus.sublink.org>
1518 for reporting this problem.
1520 Sat May 24 03:19:38 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
1522 * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
1523 sigismember): Modified the implementation of these function so
1524 as to conform with POSIX standard. Basically all functions do
1525 the same things they did but more conservative protections are
1526 added. The modified semantic becomes,
1528 sigemptyset, sigfillset, sigaddset, sigdelset: return 0 if
1529 succeed, -1 otherwise.
1530 sigismember: returns 0 if signum is not in the set, 1 if signum
1531 is in the set, and -1 if error occurs.
1533 If error occured, errno will be set to one of the following
1535 EFAULT: sigset is not a valid address.
1536 EINVAL: signum is not a valid signal number.
1538 Notice that, so far, this is for NT only.
1540 Sat May 24 01:53:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
1542 * performance-tests/Misc/test_naming.cpp (do_testing): Thanks to
1543 Sandro Doro, squashed a bug where we were trying to concatenate
1544 onto a string constant.
1546 Fri May 23 01:01:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1548 * ace/config-hpux-9.x.h: Added
1550 #define ACE_HAS_BROKEN_ENUMS
1551 #define ACE_HAS_IP_MULTICAST
1552 #define ACE_LACKS_GETPGID
1554 Thanks to Neil Cohen for reporting these.
1556 * ace/Thread_Manager.h: Made the private methods and data members
1557 protected so that subclasses can extend it. Thanks to Hamutal
1558 Yanay for this suggestion.
1560 Fri May 23 21:27:05 1997 David L. Levine <levine@cs.wustl.edu>
1562 * ace/Process.{h,cpp} (env_argv): added "const" to char * type in
1563 return type, for argument compatibility in call to ACE_OS::execve ().
1565 * ace/Process.cpp (spawn): removed unreachable return statement at
1568 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
1569 reporting the above two problems.
1571 * ace/{IOStream*,Makefile}: Split out templates into
1572 ace/IOStream_T.{h,cpp} files. This way, automatic template
1573 instantiation systems that require templates to be in separate
1574 files, such as on Irix 6.2, will be able to build IOStream_Test
1575 and the ACE_IOStream examples without warnings. (The
1576 ACE_IOSTREAM_BUILDING_TEMPLATE macro that did this only worked
1577 if ACE_TEMPLATES_REQUIRE_SOURCE was defined. It's no longer
1578 needed with the separate template files.)
1580 * tests/IOStream_Test.cpp,
1581 examples/IOStream/client/iostream_client.cpp,
1582 examples/IOStream/server/iostream_server.cpp:
1583 swapped ACE_Streambuf and ACE_Streambuf_T class names so that
1584 the template class has the "_T". And renamed ACE_IOStream_T
1587 * ace/{IOStream.*,README},
1588 tests/IOStream_Test.cpp,
1589 examples/IOStream/client/iostream_client.cpp,
1590 examples/IOStream/server/iostream_server.cpp,
1592 Added ACE_LACKS_ACE_IOSTREAM protection
1593 so that these can easily be built on platforms that have
1594 trouble with ACE_IOStream.
1596 * Priority_Task_Test.cpp: removed close () because it didn't really
1597 close the Task, and added printout to main () after all tasks have
1598 been spawned to help debug non-termination.
1600 * ace/OS.cpp: (thr_create, with STHREADS only): *thr_handle was
1601 used but *thr_id had been set by ::thr_create, so threads never
1602 got activated. Fixed by using *thr_id instead of *thr_handle
1603 in the calls to ACE_OS::thr_setprio and ACE_OS::continue.
1604 Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for reporting
1607 Fri May 23 20:12:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
1609 * tests/SV_Shared_Memory_Test.cpp: Thanks to Chuck Gehr, fixed
1610 ASCII dependent code in the parent and child routines.
1612 Fri May 23 02:58:28 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
1614 * ace/OS.i (dlsym): Added ACE_USES_ASM_SYMBOL_IN_DLSYM, support
1615 for platforms (FreeBSD) which use assembly symbols instead of C
1616 symbols in dlsym ().
1618 * ace/config-freebsd[-pthread].h: Added flag ACE_HAS_CHARPTR_DL
1619 and ACE_USES_ASM_SYMBOL_IN_DLSYM.
1621 Thu May 22 08:14:21 1997 David L. Levine <levine@cs.wustl.edu>
1623 * tests/Tokens_Test.cpp: added deletes to avoid memory leaks.
1625 Wed May 21 16:15:48 1997 David L. Levine <levine@cs.wustl.edu>
1627 * ace/{config-irix6.2*.h,README}: removed ACE_LACKS_IOSTREAM_SETGET
1628 because tests won't build with it. Also, added
1629 ACE_LACKS_SIGNED_CHAR.
1631 * ace/IOStream.h: removed "const" from PUT_PROT of
1632 u_char * and void *. This should allow the IOStream test
1633 and examples to build and run on Irix platforms. Thanks
1634 to Torbjorn Lindgren <tl@funcom.com> and Amos Shapira
1635 <amos@dsi.co.il> for reporting this, and to James Hu for
1638 * ace/{OS.cpp,Sched_Params.cp} (Solaris only): use 0 min priority
1639 again, with workaround in ACE_OS::thr_create to not use
1640 ::pthread_attr_setschedparam () if the priority is 0. Instead,
1641 the priority of the newly created thread is set to 0 (if it
1642 wasn't created with 0) after the thread is created, with
1643 ::pthread_setschedparam ().
1645 Wed May 21 15:23:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
1647 * ace/Strategies_T.* (ACE_Hash_Addr): Eliminated the ADDR_T
1648 template parameter as a base class. It is now a wholly-contained
1649 member of the ACE_Hash_Addr<> with conversion operators.
1650 This caused problems on certain compilers, notably HP-UX.
1652 Wed May 21 14:13:36 1997 James C Hu <jxh@polka.cs.wustl.edu>
1654 * ace/OS.{h,i} (difftime): Added implementation to ACE_OS. I
1655 don't expect any problems since it is in ANSI.
1657 * ace/OS.{h,i} (tempnam): Added implementation to ACE_OS.
1659 Wed May 21 01:17:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1661 * Released version 4.2.
1663 * ace/Acceptor.cpp (activate_svc_handler ): Removed an unnecessary
1664 return 0. Thanks to Amos Shapira <amos@dsi.co.il> for reporting
1667 * ace/Message_Block.cpp (release): I believe that
1668 ACE_Message_Block::release() should return something other than
1669 0, i.e., it should return the result of release_i(). Thanks to
1670 Amos Shapira <amos@dsi.co.il> for reporting this.
1672 Wed May 21 01:17:40 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
1674 * Moved most code from netsvcs/lib/Server_Logging_Handler.* to
1675 Server_Logging_Handler_T.*. Made template out of
1676 ACE_Server_Logging_Handler and ACE_Server_Logging_Acceptor.
1677 Factorised out as much as possible to reduce code
1678 duplication. The log record processing was moved from
1679 ACE_Server_Logging_Handler it should now be handled by the
1680 Log_Message_Receiver class. It is now possible to change
1681 how log records processed without changing code in
1682 Server_Logging_Handler* and it is possible to have several
1683 Server_Logging_Handlers that processes log records
1684 in different ways without duplicating all the server code.
1685 All that is needed is to write a new/change
1686 Log_Message_Receiver and instantiate a couple of templates.
1688 * netsvcs/lib/Server_Logging_Handler.h added lots of typedefs
1689 for making template instantiations easier.
1691 * netsvcs/lib/Server_Logging_Handler.h addad lots template
1692 instatiations, there are now 58 all together.
1694 * Added netsvc/lib/Log_Message_Receiver.{h,cpp}, implementstwo
1695 simple log message receivers that prints the log record to
1698 Tue May 20 13:50:17 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1700 * ace/config-hpux-9.x.h: Added a #define for ACE_HAS_BROKEN_ENUM,
1701 ACE_HAS_IP_MULTICAST, and ACE_LACKS_GETPGID. Thanks to Neil
1702 Cohen for reporting this.
1704 * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Replaced
1705 the use of -lITsrv with -lorbixmt. Thanks to Wei Chiang for
1708 * include/makeinclude/platform_osf1_3.2.GNU: Make sure that all
1709 the template repositories are in the same directory to work
1710 around problems with the C++ compiler. Also added -lrt to get
1711 the apps and tests to run. Thanks to Tom Dobridge for this
1714 Tue May 20 17:13:15 1997 Carlos O'Ryan <coryan@charlie>
1716 * ace/config-hpux-10.x-nothread.h:
1717 * ace/config-hpux-10.x-aCC.h:
1718 * ace/Stream_Modules.cpp:
1719 ACE_LACKS_STREAM_MODULES is no longer needed, moving the inclusion
1720 of "ace/Task.h" to the beginning of "ace/Stream_Modules.h" solved
1723 * ace/config-hpux-10.x.h:
1724 * ace/config-hpux-10.x-aCC.h:
1725 ACE_HAS_BROKEN_HPUX_TEMPLATES is not needed on newer HP/CXX
1726 compilers; further, old ones will not compile ACE even if the
1729 * ace/Timer_List_T.h:
1730 * ace/Timer_Queue_T.i:
1731 I moved the definition of ACE_Timer_Queue_T::lock() from the .i
1732 file to the .h file, HP/CXX gets completely confused otherwise.
1733 I also added a number of ACE_INLINE missing in the .i file.
1735 * ace/Stream_Modules.h:
1736 * ace/Stream_Modules.cpp:
1737 I had to move the inclusion of "ace/Task.h" outside of the
1738 protections against multiple inclusion for Stream_Modules.h.
1739 That seems to solve the ciclyc dependancy for
1740 Task->Module->Stream_Module->Task.
1741 BTW, the same thing was already done in "ace/Log_Record.h".
1742 I'll try to remove the ACE_LACKS_STREAM_MODULES macro, it seems
1743 that the last change makes it redundant.
1746 HP/CXX compiler will not close the library unless
1747 ACE_MAX_SIGNAL_HANDLERS is defined as "const size_t". The previous
1748 definition ("size_t") did compile tough.
1751 We need to include "ace/ACE.h" before "ace/Log_Priority.h".
1753 * ace/Log_Priority.h:
1754 HP/CXX compiler seems to reserve a few bits in enums, so the
1755 ENSURE_32_BITS trick would result in a compile time error.
1756 Since HP enums are always 32 bits we could skip the definition for
1757 ENSURE_32_BITS altogether, but I prefer to keep a consistent
1758 namespace across plaforms, I have found a value for ENSURE_32_BITS
1761 * include/makeinclude/platform_hpux.GNU:
1762 Some options to improve compile time, since we use explicit
1763 template instantiation there is no need for a ptcomp o ptlink
1766 Tue May 20 09:10:18 1997 Nanbor Wang <nw1@number.wustl.edu>
1768 * ace/config-freebsd-pthread.h:
1769 * ace/config-freebsd.h: Removed "FreeBSD" directive because gcc on
1770 FreeBSD defines __FreeBSD__ automatically.
1772 * ace/OS.i (sigaddset, sigdelset, sigismember): Added range
1773 checking to these functions in order to avoid disasters. Sig
1774 number should be between 1 and NSIG.
1775 (sigwait): Changed ifdef (FreeBSD) to ifdef (__FreeBSD__) since
1776 compiler does it for us.
1778 Tue May 20 08:41:11 1997 David L. Levine <levine@cs.wustl.edu>
1780 * examples/Threads/tss2.cpp: added #include of ace/Thread.h
1781 because Sun C++ 4.1 needs it.
1783 Mon May 19 16:04:32 1997 David L. Levine <levine@cs.wustl.edu>
1785 * bin/create_ace_build: changed startup line for compatibility
1786 with bash. This startup line lets the script run without
1787 hard-coding the full path to the perl executable, as long as
1788 perl is on the user's PATH.
1790 Mon May 19 12:45:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1792 * examples/Threads/reader_writer.cpp: Changed the code so that we
1793 don't try to treat thread ids as ints! Thanks to Chuck Gehr for
1796 Sun May 18 21:57:54 1997 David L. Levine <levine@cs.wustl.edu>
1798 * examples/Threads/tss2.cpp: added second parameter to
1799 ACE_TSS_Singleton template specialization.
1801 Sun May 18 09:20:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
1803 * examples/Threads/TSS_Data.h: Added the second parameter for
1804 ACE_SYNCH_MUTEX since Rich and Chris updated ACE_TSS_Singleton.
1806 * ace/Singleton.cpp: Added the updated version of
1807 ACE_TSS_Singleton that implements the Double-Checked Locking
1808 pattern. Thanks to Rich Christy and Chris Lahey for this.
1810 * ace/Strategies_T.cpp (activate_svc_handler): Fixed the logic so
1811 that a value is always returned. Thanks to David Levine for
1814 Sun May 18 07:25:11 1997 David L. Levine <levine@cs.wustl.edu>
1816 * netsvcs/lib/Server_Logging_Handler.cpp: removed second
1817 ACE_Svc_Handler specialization for non-threaded, has-TLI case.
1818 That's because it is the same as the first; the only difference
1819 was that one specialized with ACE_SYNCH and the other with
1820 ACE_NULL_SYNCH. Without threads, those macros expand to the
1821 same thing. Thanks Sandro Doro <doros@aureus.sublink.org> for
1824 * examples/Threads/tss2.cpp: added ACE_TSS<TSS_Data> template
1827 Sat May 17 23:24:34 1997 Nanbor Wang <nw1@number.wustl.edu>
1829 * ace/OS.i (sigismember): Corrected the code when
1832 Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
1834 * examples/ASX/Event_Server/Transceiver/transceiver.cpp
1835 (Event_Transceiver): Corrected signal registration for Win32.
1837 * apps/Gateway/Gateway/Gateway.cpp (parse_args): Since the
1838 Connector is now fixed, non-blocking is now working fine.
1840 * ace/Connector.cpp (handle_close,create_AST): Made sure we close
1841 down the svc_handler on error.
1843 * ace/{Acceptor.cpp,Connector.cpp} (activate_svc_handler): The
1844 if statement logic in these methods was incorrect.
1846 * ace/SOCK_Connector.cpp (connect): Just like in complete(), we
1847 start out with non-blocking disabled on the <new_stream>.
1849 * ace/OS.h: When ACE_LACKS_SIGSET is defined, changed the
1850 definition of sigset_t from void * to unsigned int.
1852 Sat May 17 12:25:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1854 * ace/{Acceptor,Connector,Strategies_T}: Make sure to either
1855 enable or disable ACE_NONBLOCK (depending on the flags). This
1856 ensures that we always start with the I/O mode set to a
1857 deterministic state. Thanks to Irfan for suggesting this.
1859 * ace/Connector: Added a new "flags" parameter to the
1860 ACE_Connector and ACE_Strategy_Connector which keeps track of
1861 flags that control how Svc_Handler are initialized prior to
1864 * ace/Strategies_T.cpp (activate_svc_handler): Make sure to set
1865 the peer's handle into non-blocking mode *before* calling the
1866 Svc_Handler's open() method. This ensures that things are set
1867 up correctly when this hook is called.
1869 Sat May 17 02:19:27 1997 Nanbor Wang <nw1@number.wustl.edu>
1871 * ace/config-freebsd.h (ACE_HAS_BROKEN_TIMESPEC_MEMBERS):
1873 * ace/OS.i (set, timestruct_t, nanosleep):
1875 * ace/High_Res_Timer.cpp (elapsed_time):
1877 * ace/README: Added ACE_HAS_BROKEN_TIMESPEC_MEMBERS so that we can
1878 fix that problem FreeBSD 2.1.x brings by defining timespec as {
1879 time_t ts_sec ; long ts_nsec }. Notice: This is highly
1880 non-portable. Please refer to ACE code and see how to write
1881 portable. Fortunately, only older versions of FreeBSD have
1882 this. Yesterday's hack didn't work, so, it's removed. Thanks
1883 to Satoshi Ueno <satoshi.ueno@gs.com> for reporting and helping
1884 debug on his FreeBSD 2.1.7R box.
1886 Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
1888 * apps/Gateway/Gateway/Proxy_Handler.cpp (open): Turn on
1889 non-blocking I/O only after the Channel is done sending the id
1892 * apps/Gateway/Gateway/Gateway.cpp:
1894 - Added necessary DLL build macros.
1896 - Removed error checking for Reactor::remove_handler() for STDIN
1897 as STDIN is never registered with the Reactor on Win32.
1899 - Fixed the registration of SIGINT.
1901 - blocking_semantics_ should be 1 when blocking is on and not 0.
1903 - Since the Connector is currently broken with respect to
1904 non-blocking connects, I have put a temporary fix such that
1905 only blocking connects are done. Revert this after the
1908 * apps/Gateway/Gateway/Event_Channel.cpp:
1910 - Only if socket_queue_size > 0, do we set a new value.
1912 - In reinitiate_proxy_connection(), we must unbind the proxy
1913 from the proxy_map_ as we are no longer responsible for
1914 this. The Connector should now be responsible for this.
1916 * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp: Added
1917 necessary DLL build macros.
1919 * apps/Gateway/Peer/Peer.cpp:
1921 - Added include file and necessary DLL build macros.
1923 - Removed error checking for Reactor::remove_handler() for STDIN
1924 as STDIN is never registered with the Reactor on Win32.
1926 - Fixed the registration of SIGINT.
1928 * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles.
1930 * ace/ACE.cpp (read_adapter): Handle for the read_adapter should
1933 Fri May 16 18:43:17 1997 Nanbor Wang <nw1@number.wustl.edu>
1935 * ace/config-freebsd.h: Minor modification for working on FreeBSD
1936 2.1.x platform. Added includion of <sys/time.h> and
1937 <sys/types.h>. Defined ACE_HAS_POSIX_TIME for 2.1.x. Redefine
1938 timespec to timeval to hack around a bug on 2.1.x. Thanks to
1939 Satoshi Ueno <satoshi.ueno@gs.com> for reporting this.
1941 Fri May 16 12:25:32 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
1943 * netsvcs/lib: Reverted back to the original Server_Logging_Handler
1944 behavior since the new version is breaking GCC's templates.
1946 * ace/Log_Record.h: need to #include "ace/ACE.h" before
1947 "ace/Log_Priority.h" so that "Log_Priority.h" sees the
1948 configuration stuff (otherwise the following fix won't work).
1950 * ace/Log_Priority.h: Added a workaround for lame C++ compilers
1951 like the one on HP/UX that can't support large enums. Thanks to
1952 Robert Head for reporting this.
1954 * ace/Singleton: Added the new ACE_TSS_Singleton, which stores
1955 Singletons in thread-specific storage. Thanks to Chris Lahey
1956 and Rich Christy <rchristy@cccis.com> for this.
1958 * ace/OS.h: Removed the ACE_Singleton_Strategy since we don't need
1961 * netsvcs/lib: Added the new Server_Logging_Handler_T.* and
1962 Log_Message_Receiver.* netsvcs. Thanks to Per Andersson for
1965 * examples/Misc/Makefile: Removed the XtReactor tests from the
1966 Makefile until we figure out a good way to get them integrated
1967 with the appropriate libraries.
1969 * ace/config-irix6.2-sgic++-nothread.h: Added the following:
1971 ACE_LACKS_LINEBUFFERED_STREAMBUF
1976 Thanks to Torbjorn Lindgren <tl@funcom.com> for reporting
1979 * ace/Proactor.cpp: Changed the use of lock() to mutex() since we
1980 changed the name in Timer_Queue.
1982 * ace/Timer_Queue_T.i: Changed the name of the lock() method to
1983 mutex() to work around compile problems with HP/UX. Thanks to
1984 Robert Head <rhead@mail.virtc.com> for reporting this
1987 * ace/config-irix5.3-sgic++.h: Made a few changes to get ACE to
1988 work on IRIX 5.3. Thanks to Eugene R. Somdahl <gene@endo.com>
1991 * ace/OS: Added calloc() implementation. I don't know how
1992 this managed to fall through the cracks!
1994 * include/makeinclude/platform_osf1_4.0.GNU: Added a few more
1995 tweaks courtesy of James Johnson.
1997 * include/makeinclude/platform_osf1_3.2.GNU: Added a few more
1998 tweaks courtesy of Tom Dobridge.
2000 * include/makeinclude/platform_osf1_4.0.GNU (DLD): Added -shared
2001 -expect_unresolved '*' so that calls to the linker via cxx will
2002 work correctly. Thanks to Thilo for this.
2004 * include/makeinclude/platform_chorus.GNU: Removed CLASSIXDIR =
2005 /usr/home/chiang/chorus/merge/extended-i386at, added the
2006 nostdinc flag, and removed extra whitespace. Thanks to Wei
2007 Chiang for reporting this.
2009 Fri May 16 00:02:33 1997 <irfan@TWOSTEP>
2011 * ace/ReactorEx: Even though changes to the owner field are very
2012 well synchronized within the class code, the owner()
2013 accessor is public and can be called from out side the
2014 class. Therefore, I have added a owner_i() that does not do
2015 locking. All internal calls to check the owner will use the
2016 new accessor, whereas application code outside the class can
2017 still use the old synchronized accessor.
2019 Fri May 16 11:39:51 1997 Nanbor Wang <nw1@cs.wustl.edu>
2021 * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
2022 sigismember): Added implementation when ACE_LACKS_SIGSET so that
2023 platforms (NT?) without these functions can still manipulate
2026 Thu May 15 22:19:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
2028 * examples/ASX/Event_Server/Event_Server: Removed the THR_DETACHED
2029 flag from options so that we can wait on the threads
2032 * ace/Stream_Modules.cpp: Changed the logic for determining when
2033 to compile the Stream_Modules.cpp code. Now, we compile it
2034 unless ACE_LACKS_STREAM_MODULES is defined (i.e., we're on HP/UX
2037 * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed
2038 a bug in handle_input() where we need to return the result, not
2039 just 0 or 1. Thanks to Per Andersson for reporting this.
2041 * ace/Log_Priority.h: Changed the values of the enums in
2042 ACE_Log_Priority so that they can be dealt with via bitwise
2043 operations. Thanks to Per Andersson for this.
2045 * include/makeinclude/platform_osf1_4.0.GNU: Added support for
2046 templates. Thanks to Steve Huston and James Johnson for
2049 * include/makeinclude/platform_osf1_3.2.GNU: Got rid of all
2050 unresolved symbol warnings using cxx 5.5 on DEC/OSF v3.2 by
2051 using the linker flag "-expect_unresolved '*'." In addition, I
2052 added -threads to the DCFLAGS macro. Thanks to Tom Dobridge
2053 <dobridge@persimmon.com> for this.
2055 * ace/Strategies_T: Added a minor ACE_Reactive_Strategy extension
2056 to enable non-blocking I/O in active_svc_handler(). Thanks to
2057 Arturo Montes <mitosys@colomsat.net.co> for contributing this.
2059 * ace/config-osf1-4.0[-g++].h: Added a #define for
2060 ACE_POLL_IS_BROKEN since DEC UNIX's poll() doesn't seem to work
2061 correctly as a highres timer. Thanks to James Johnson and Thilo
2064 * examples/Threads/thread_specific.cpp (worker): Changes
2065 size_t i back to int i to avoid a signed/unsigned complaint.
2066 Thanks to David Levine for reporting this.
2068 * ace/config-chorus.h: Added ACE_LACKS_MPROTECT,
2069 ACE_HAS_IP_MULTICAST, and ACE_LACKS_SOCKETPAIR to the Chorus
2070 port. Thanks to Wei Chiang <chiang@erebor.tele.nokia.fi> for
2073 * ace/OS.i: Added ACE_LACKS_ACCESS to the Chorus config file
2074 and VxWorks config file, as well as to OS.i.
2076 : * ace/OS.i: Added ACE_LACKS_GETSERVBYNAME to the Chorus config
2077 file and VxWorks config file, as well as to OS.i.
2079 * ace/OS.i: Added ACE_LACKS_SBRK to the Chorus config file, as
2080 well as to the definition of the ACE_OS::sbrk() function.
2082 * ace/OS.h: Removed #include /**/ <pwd.h> from the Chorus-specific
2083 part of OS.h since it's already included elsewhere. Thanks to
2084 Wei Chiang <chiang@erebor.tele.nokia.fi> for reporting this.
2086 * ace/Reactor: Added a typedef for ACE_Reactor_Token to
2087 ACE_Null_Mutex for situations where ACE_MT_SAFE is *disabled*.
2088 This makes the code more consistent.
2090 * ace/Reactor: Added an interface that makes it possible to
2091 acquire a reference to the <ACE_Reactor_Token> that is used to
2092 serialize the internal Reactor's processing logic. This can be
2093 useful for situations where you need to avoid deadlock
2094 efficiently when <ACE_Event_Handlers> are used in multiple
2095 threads. Thanks to Detlef for pointing out the utility of this.
2097 Thu May 15 23:34:30 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
2099 * ace/Process_Manager.cpp (spawn_n): Changed
2100 ACE_Process_Manager::start_n to ACE_Process_Manager::spawn_n.
2102 Thu May 15 15:39:13 1997 Carlos O'Ryan <coryan@charlie>
2104 * include/makeinclude/platform_hpux.GNU:
2105 * ace/config-hpux-10.x.h:
2106 * ace/config-hpux-10.x-nothread.h:
2107 HP/CXX cannot achieve template closure, not even using the
2108 dummy exec trick: apparently the repository gets a bit
2109 corrupted. HP/CXX (version 10.24) support explicit template
2110 instantiation, I believe this to be a superior method for
2111 ensuring library closure (and it works).
2114 * ace/Stream_Modules.cpp:
2115 I have changed the hack to compile under HP-UX,
2116 "ace/Module.h" is once more included in ace/Task_T.cpp, but
2117 "ace/Stream_Modules.cpp" is protected: it will be empty
2118 under HP-UX unless included from the
2119 "ace/Stream_Modules.h". I still believe that there is a
2120 problem in the cyclic dependancy Task -> Module -> Thru_Task
2121 -> Task; but it seems that the current hack works better.
2124 Defining ACE_UNUSED_ARG as (a) for HP/CXX does not work so I
2125 moved it to the SGI and GCC definition.
2131 Removed the extra qualification for ACE_Handle_Set::NBITS,
2132 HP/CXX sends a lot of warnings with that.
2135 It included "IOStream.cpp" I think that "ace/IOStream.cpp"
2138 * ace/Local_Name_Space_T.h:
2139 Ditto for "Local_Name_Space.h"
2141 Thu May 15 17:40:06 1997 <irfan@TWOSTEP>
2143 * ace/ReactorEx.i (owner): Since changes to the owner field are
2144 very well synchronized, we do not need to synchronize this
2147 * ace/IOStream.h: Added /**/ after #include directives.
2149 * ace: Update Win32 makefiles to include UNICODE make option.
2151 Thu May 15 08:54:53 1997 David L. Levine <levine@cs.wustl.edu>
2153 * Makefile (release, cleanrelease): use -prune option to "find"
2154 instead of filtering its output. Thanks to Chris Cleeland for
2157 Wed May 14 21:52:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2159 * ace/UPIPE_Stream.cpp (control): We need to "cast away const" so
2160 that this method can call the Stream's control() method
2161 (which is non-const). Thanks to David Levine for locating this.
2163 * ace/Singleton.cpp: Finished re-implementing ACE_Singleton.
2165 * examples/ASX/Message_Queue/buffer_stream.cpp: Updated this
2166 example to illustrate (1) how filters work in an ACE_Stream and
2167 (2) to make sure that resizing buffers work.
2169 * ace/UPIPE_Stream.h: Changed the signature of control()
2170 to take an int so that it will match the base class
2173 * ace/Singleton.h: The new ACE_SingletonEx isn't working yet.
2174 I've #ifdef'd it out until it works.
2176 * examples/Threads/tss2.cpp: Updated this test program to
2177 illustrate the use of the new ACE_SingletonEx class.
2179 * ace/Singleton.h: Added a new instance() method to the ACE
2180 Singleton that can be used to set the Singleton. This is useful
2181 for situations where the type being used as the Singleton
2182 doesn't have a default constructor. Thanks to Arturo Montes
2183 <mitosys@colomsat.net.co> for this suggestion.
2185 * ace/Singleton: Factored out common code in the Singleton and
2186 SingletonEx implementations so they will be cleaner and more
2189 * ace/Local_Name_Space_T.h,
2191 ace/Hash_Map_Manager.h,
2193 ace/Hash_Map_Manager.cpp:
2195 Changed all uses of the identifier "allocator" to "alloc" to
2196 avoid conflicts with MSVC++ STL 5.0. Thanks to William
2197 L. Gerecke <gerecke@rayva.org> for reporting this.
2199 * ace/config-aix-4.[12].x.h: Replaces
2200 ACE_LACKS_PTHREAD_THR_SIGSETMASK with ACE_HAS_SIGTHREADMASK.
2201 Thanks to Chris Lahey for this.
2203 * ace/OS.i (thr_sigsetmask): Added the ACE_HAS_SIGTHREADMASK
2204 support for AIX. Thanks to Chris Lahey for this.
2206 * ace/Singleton: Added the new ACE_SingletonEx, which supports
2207 both heap-based and thread-specific storage-based Singletons.
2208 Thanks to Chris Lahey for this.
2210 * ace/OS.h: Added the new ACE_Singleton_Strategy to OS.h. Thanks
2211 to Chris Lahey for this.
2213 Wed May 14 16:32:57 1997 David L. Levine <levine@cs.wustl.edu>
2215 * Makefile: use cpio instead of tar to allow easy filtering
2216 of CVS files from the release.
2218 Wed May 14 15:00:58 1997 <irfan@TWOSTEP>
2220 * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed code.
2222 * examples/Naming: Replaced multiple makefiles with one makefile.
2224 * ace/OS.h: Added UNICODE support for some #defines.
2226 * OS.i (vsprintf): Added support for this in ACE_OS.
2228 * OS.cpp (socket_init && socket_fini): It is ok to print out cout
2229 and cerr messages from here (as the C runtime library is still
2230 attached) but it is *not* ok to print out ACE_DEBUG
2231 messages. God only knows the state of the thread specific LogMsg
2232 instance when the process reaches this piece of code.
2234 Also added a (handy) sprintf that has the following prototype:
2236 sprintf (wchar_t *buf, const char *format, ...)
2238 * ace/Process: UNICODE fixes.
2240 * tests: Fixed the following such that they work with UNICODE:
2243 Process_Mutex_Test.cpp
2244 Process_Strategy_Test.cpp
2245 Time_Service_Test.cpp
2248 * Time_Service_Test.cpp (main): Fixed typo in the svc.conf
2249 filename for the clerk.
2251 Tue May 13 18:56:27 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2253 * ace/IOStream.h: To make C++ compilers happy I added
2254 the following changes by modifying
2256 ACE_IOStream & operator>>( ACE_Time_Value *& tv );
2260 ACE_IOStream<STREAM> & operator>>( ACE_Time_Value *& tv );
2262 Thanks to Chuck Gehr for this fix.
2264 Tue May 13 21:32:12 1997 David L. Levine <levine@cs.wustl.edu>
2266 * ace/Process.cpp (~ACE_Process_Options): delete
2267 command_line_buf_ was missing the [].
2269 * examples/Threads/process_manager.cpp (main): avoid compiler
2270 warning due to implicit creation of temporary by explicitly
2271 creating an ACE_Process_Options instance. It gets passed to
2272 ACE_Process_Manager::spawn (ACE_Process_Options &), which
2273 takes a non-const reference.
2275 Tue May 13 18:08:32 1997 <irfan@TWOSTEP>
2277 * examples/ASX/UPIPE_Event_Server: Made enough fixes for this to
2278 compile on Win32 but more work need to be done for this to
2281 * ace/OS.i (kill): The error result for ::OpenProcess() is null
2282 and *not* invalid handle.
2284 * ace/Process.i (kill): Changed the implementation to remove the
2285 ACE_OS::kill() code from ACE_Process::kill() for Win32. This
2286 allows us to avoid calling ::OpenProcess() unnecessarily.
2288 * tests: For Win32, added Reactor_Exceptions_Test and
2289 Priority_Tasks_Tests. Files changes include run_tests.bat,
2290 tests.mak, and tests.mdp.
2292 * tests/Future_Test.cpp (main): Fixed memory leaks in main() and
2295 * tests/Thread_Pool_Test.cpp (open): The loop was messed up
2296 causing memory leaks. I fixed it.
2298 * ace/UPIPE_Stream.cpp (close): I am not sure why the stream was
2299 closed with M_DELETE_NONE. This indicates that close() should
2300 not delete any Tasks. This caused a memory leak as the Tasks in
2301 the Tail and Head modules were not deleted. I have removed this
2302 to fix the memory leak.
2304 Also added a destructor such that mb_last_ is released if it is
2307 Tue May 13 16:48:18 1997 James C Hu <jxh@polka.cs.wustl.edu>
2309 * ace/Process.cpp: Added implementations to new interfaces
2310 to ACE_Process_Options::setenv (char *envp[]), and
2311 ACE_Process_Options::command_line (char *argv[]).
2313 * apps/JAWS/server/HTTP_Response.cpp: Required changes so that CGI
2314 processing will work with the new ACE_Process class.
2316 * apps/JAWS/stress_testing/benchd.cpp: Requried changes due to
2317 changes in the ACE_Process interface.
2319 Tue May 13 15:22:01 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
2321 * ace/Process_Manager.h: Changed ACE_Process_Manager::start to
2322 ACE_Process_Manager::spawn.
2324 * ace/Process.cpp (spawn): The check for a null environment argv
2325 was incorrect. Thanks to Nanbor for finding this.
2327 Mon May 12 18:59:39 1997 David L. Levine <levine@cs.wustl.edu>
2329 * ace/config-mvs.h: conditionally use ACE_HAS_UCONTEXT_T or
2330 ACE_LACKS_UCONTEXT_H depending on __COMPILER_VER__. Thanks to
2331 Chuck Gehr <gehr@sweng.stortek.com> for this fix.
2333 * OS.h, OS.cpp (thr_create), Task.h, Thread.h, Thread_Manager.h:
2334 use ACE_DEFAULT_THREAD_PRIORITY instead of -1, because -1 is a
2335 valid priority on Win32. Thanks to Irfan for discovering this
2336 problem with Priority_Task_Test.
2338 * ace/Thread_Manager.cpp (wait_grp,wait_task): changed type of loop
2339 index "i" from size_t to int to avoid signed/unsigned comparison.
2341 Mon May 12 18:41:19 1997 Nanbor Wang <nw1@cs.wustl.edu>
2343 * ace/config-freebsd-pthread.h:
2344 * ace/config-freebsd.h: Added ACE_LACKS_RWLOCK_T to FreeBSD config
2345 files. Thanks to Amancio Hasty <hasty@rah.star-gate.com> for
2348 Mon May 12 17:11:50 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
2350 * ace/Process.h: Changed ACE_Process::start to
2351 ACE_Process::spawn. Added new argv-style methods for
2352 ACE_Process::setenv and ACE_Process::command_line. These new
2353 argv-style methods do not have implementations yet.
2355 Mon May 12 15:27:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2357 * ace/config-aix-4.[12].x.h: Added ACE_HAS_EXCEPTIONS to
2358 the AIX 4.* config files. Thanks to Chris Lahey for this.
2360 Mon May 12 13:49:54 1997 <irfan@TWOSTEP>
2362 * ace/Thread_Manager.cpp (wait): We have to make sure that while
2363 we wait for these threads to exit, we do not have the
2364 lock. Therefore we make a copy of all interesting entries and
2365 let go of the lock. We then do the join().
2367 * ace/Task.cpp (wait): Removed the extra locking in wait(). The
2368 Thread Manager will handle this correctly.
2370 * ace/ACE.cpp (register_stdin_handler): Changed the options such
2371 that the Thread Manager used for the adapter is passed along to
2372 the method executed by the new thread. We can then notify the
2373 thread manager when this adapter thread exits.
2375 * examples/ASX/Event_Server/Event_Server: Changed the way the
2376 reference count was being kept on the context. Now, the
2377 reference count starts with zero and every instance and every
2378 active Task increments it. This works well as Task::close() is
2379 called one from the module being deleted and from the active
2382 Mon May 12 11:11:51 1997 <harrison@samba.cs.wustl.edu>
2384 * ace/Process.*: Removed the old ACE_Process and replaced it with
2385 what was ACE_ProcessEx.
2387 * ace/Process_Manager.{i,cpp}: Updated to use the new ACE_Process
2390 Mon May 12 08:16:38 1997 David L. Levine <levine@cs.wustl.edu>
2392 * ace/config-freebsd*.h: added support for FreeBSD 2.1.7R.
2393 Thanks to Satoshi Ueno <satoshi.ueno@gs.com> for figuring
2394 out the differences and to Nanbor Wang <nw1@cs.wustl.edu>
2395 for updating the config files.
2397 Sun May 11 17:36:59 1997 <harrison@samba.cs.wustl.edu>
2399 * tests/{Pipe_Test.cpp, Process_Mutex_Test.cpp,
2400 Time_Service_Test.cpp, Token_Service_Test.cpp}: Updated these
2401 files to use the new ACE_Process API.
2403 Sun May 11 14:40:51 1997 David L. Levine <levine@cs.wustl.edu>
2405 * ace/config-osf1-4.0.h: put back ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
2407 * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
2408 initializers to match declaration order.
2410 Sat May 10 19:44:28 1997 <harrison@samba.cs.wustl.edu>
2412 * Process.h: ACE_ProcessEx now works on Solaris and NT. There
2413 have been some changes to the API. ACE_ProcessEx::cl_options
2414 and ACE_ProcessEx::path have been combined into
2415 ACE_ProcessEx::command_line. ACE_ProcessEx::command_line must
2416 be used to specify path and command-line arguments. There is
2417 also a second ACE_ProcessEx::setenv method that allows
2418 applications to set environment variables in a "VAR=VALUE"
2421 Sat May 10 10:51:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
2423 * ace/config-osf1-3.2.h: Added three new flags to the config file
2426 #define ACE_LACKS_SETSCHED
2427 #define ACE_LACKS_RWLOCK_T
2428 #define ACE_LACKS_GETPGID
2430 Thanks to Tom Dobridge <dobridge@persimmon.com> for reporting
2433 Fri May 09 16:37:48 1997 David L. Levine <levine@cs.wustl.edu>
2435 * ace/config-osf1-4.0.h: added DEC_CXX.
2437 * ace/config-osf1-4.0-g++.h: removed commented-out
2438 ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
2440 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
2441 patches for the above two OSF config files.
2443 * ace/Sched_Params.cpp (priority_min): On Solaris (with STHREADS),
2444 don't return priority of 0 because ::pthread_attr_setschedparam ()
2445 will refuse to use it (with EINVAL). So, bump priority of 0 up to 1.
2447 * tests/Priority_Task_Test.cpp: retry the task activation with
2448 priority 0 if it fails with non-zero priority. This lets the
2449 test run on platforms such as Linux that only let the superuser
2450 set non-zero priority.
2452 * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
2453 initializers to match declaration order.
2455 * examples/Connection/non_blocking/test_lsock_acceptor.cpp: fixed
2456 typo in template specializations: ACE_LSOCK_ACCEPTOR instead of
2459 Fri May 9 13:07:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
2461 * ace/UNIX_Addr: Changed the return values of all the set()
2462 methods so that they conform to the signature used by the
2465 * examples/Connection/non-blocking: Added two new test programs,
2466 test_lsock_{connector,acceptor}.cpp that
2469 * ace/LSOCK_Stream.cpp: Revised the get_remote_addr() method so
2470 that it uses the underlying ACE_SOCK::get_remote_addr() method
2471 rather than the get_local_addr() method. Hopefully, this will
2472 fix an ACE bug with UNIX domain sockets. Thanks to Paul Han
2473 <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
2475 * include/makeinclude/platform_aix4.2.GNU (LLIBS): Changed
2477 LLIBS = -lC_r -lC -lpthreads -lbsd -ltli_r -ldl -lc_r -lm -lc $(ACELIB)
2481 LLIBS = -ltli_r -ldl $(ACELIB)
2483 MakeC++SharedLib_r includes all the other libs automatically in
2486 * apps/Gateway/Gateway/Proxy_Handler.h: Moved the handle_close()
2487 method into the public section since the Connector now calls it.
2489 * ace/Containers.cpp: Updated all the operator= methods so
2490 that they no longer try to return *this. Thanks to Chris Lahey
2493 * ace/IOStream.h: Replaced __alpha with DIGITAL_UNIX && DEC_CXX.
2494 Thanks to Thilo for reporting this.
2496 * build/gcc/tests/Simple_Message_Block_Test.cpp (main): Changed
2497 the use of ACE_Mutex to ACE_SYNCH_MUTEX so that everything will
2498 build correctly on non-MT platforms.
2500 * ace/Timer_{Heap,List}_T.cpp: To ensure backwards compatibility
2501 with the old "int" return value of Timer_*::schedule() we must
2502 cast the long value to int before returning it. Thanks to Thilo
2503 Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
2507 If an active or passive connection times out and the Connector
2508 or Acceptor calls the handle_timeout() method of the
2509 Svc_Handler, we now keep track of whether the handle_timeout()
2510 method returns -1. If so, we call handle_close() on the
2511 Svc_Handler automatically. Thanks to Michael Hartman
2512 <c62nt57@ibx.com> for suggesting this.
2514 * tests/IOStream_Test.cpp: Fixed this test so that it runs on
2517 * ace/Module.cpp: Changed the implementation of the close_i()
2518 method so that it will wait for all active threads in a Task to
2519 exit before deleting the task.
2521 * ace/Task: Added a wait() method on an ACE_Task that will use the
2522 new ACE_Thread_Manager::wait_task() method to block until all
2523 threads have shutdown in a Task.
2525 * ace/Thread_Manager: Finally implemented the wait_task() and
2526 wait_grp() interfaces on ACE_Thread_Manager.
2528 * ace/SOCK_Dgram.cpp: Added a timed recv() operation. Thanks
2529 to Hongbo Xu <hxu@mas.co.nz> for contributing this.
2531 * ace/Timer_Queue_T.cpp: Added #include "ace/Synch.h" to keep the
2532 DEC C++ compiler happy. Thanks to James CE Johnson
2533 <jcej@lads.com> for this.
2535 * ace/Containers.i (size): Changed <TYPE> to <T> so that this
2536 compiles on the Alpha. Thanks to James CE Johnson
2537 <jcej@lads.com> for this.
2539 * ace/IOStream.h: Include the std_macros header on the Alpha.
2540 Thanks to James CE Johnson <jcej@lads.com> for this.
2542 * include/makeinclude/platform_osf1_4.0.GNU (SOBUILD): Removed
2543 -lACE from the link line. Thanks to James CE Johnson
2544 <jcej@lads.com> for this.
2546 * tests/Timer_Queue_Test.cpp: Changed all the int timer ids to
2547 long so that the test will work on DEC ALPHAs. Thanks to Thilo
2548 Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
2550 * ace/Process: Fixed a number of compile problems for UNIX.
2552 * ace/Process.h: Changed the methods named stdin/stdout/stderr to
2553 std_in/std_out/std_err to avoid name clashes with the standard C
2556 * ace/OS: Changed the use of ACE_Unbounded_Set to
2557 ACE_Unbounded_Stack in order to get the appropriate semantics
2558 for TSS cleanup on NT.
2560 * ace/Containers: Enhanced the ACE_Unbounded_Stack class so
2561 that it supports insert()/remove()/find() methods. These
2562 rather unorthodox methods are useful for implementing the
2563 TSS semantics required by OS.cpp.
2565 * ace/Containers: Revised all the interfaces for the various
2566 containers so that they all have the same "look and feel."
2568 Fri May 9 00:00:21 1997 James C Hu <jxh@polka.cs.wustl.edu>
2570 * apps/JAWS/server/HTTP_Request.{h,cpp}: Added a uritopath
2571 translation method, so that CGI location can be computed as it
2572 is searched. Added methods to access the parsed headers.
2574 * apps/JAWS/server/HTTP_Response.{h,cpp}: Flushed out the
2575 implementation of cgi_response () method. If all goes well, it
2576 should be able to execute a CGI program. I don't set the IO
2577 handles to point at the socket handle yet.
2579 * apps/JAWS/server/README: Updated description of JAWS behavior.
2581 Thu May 8 18:04:14 1997 Irfan Pyarali <irfan@cs.wustl.edu>
2583 * ace/Containers: Made the return values of Container methods
2584 more consistant with other components of ACE (i.e., 0 for
2585 success, -1 for failure).
2587 * ace/Containers (ACE_Unbounded_Stack<T>::delete_all_nodes):
2588 Fixed subtle bug in delete_all_nodes.
2590 * ace/OS.cpp (ACE_TSS_Cleanup::exit): Changed because of
2591 return value changes in ACE containers.
2593 * Containers: Added size methods to stack containers and
2594 consolidated friendship between ACE_Unbounded_Stack_Iterator and
2597 * tests/Message_Block_Test.cpp: I was incorrect about each data
2598 block having its own lock. Since *many* data blocks can share
2599 the same lock, for the case of message block chains, we would
2600 like to optimize locking.
2602 Therefore, the first guy in the chain grabs the lock and passes
2603 it to the continuation chain. When each guy in the chain gets
2604 it, it compares the passed lock to its own locking strategy. If
2605 it is the same lock, no need to acquire the lock again. If our
2606 lock is different, then we do our own locking.
2608 * tests/Simple_Message_Block_Test.cpp: This test program is a
2609 torture test that illustrates how ACE_Message_Block reference
2610 counting works, how and when locks are used, how memory is
2611 managed, and how continuation chains of message blocks are
2612 made. Ideally used with purify :-)
2614 * tests: Added new test. Following changed:
2615 Makefile run_tests.bat run_tests.sh tests.mak tests.mdp
2617 Thu May 8 18:04:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
2619 * include/makeinclude/platform_irix6.2_sgic++.GNU: Moved SGI C++
2620 options out of CPPFLAGS into CCFLAGS so that gcc won't emit
2621 diagnostics during a make depend.
2623 Thu May 8 11:52:41 1997 Chris Cleeland <cleeland@cs.wustl.edu>
2625 * ace/{Task,Thread}.h: Added documentation describing
2626 thread priority determination to methods where priority
2627 is an [optional] argument. Note that if you want to inspect
2628 the REAL documentation, you should look at the code for
2629 ACE_OS::thr_create(). But that's convoluted and touchy.
2631 * ace/Strategies_T.h (ACE_Cached_Connection_Strategy): Added
2632 documentation for this class.
2634 Thu May 08 00:10:00 1997 <harrison@samba.cs.wustl.edu>
2636 * ace/Process.*: This is the first pass at the new ACE_Process
2637 class. It is now called ACE_ProcessEx. When it is completely
2638 ported to Solaris, we'll replace the current ACE_Process with
2641 * examples/OS/Process/process.cpp: Added some examples for the
2644 Wed May 07 21:58:29 1997 <irfan@TWOSTEP>
2646 * ace/Message_Block.h: ACE_Data_Block calling delete on the
2647 ACE_Message_Block was incorrect. This was a hack to simplify
2648 the locking issues! However this optimization leaded to
2649 incorrect code. Therefore I have taken this behavior out. The
2650 new implementation will lock and unlock multiple times in the
2651 case when there are message_blocks in the continuation field,
2652 all of which point to same data block. However, this is a
2653 strange case that can be optimized later. For now correct code
2656 Also, the continuation message blocks are only deleted in the
2657 release() method and not in the destructor. This will ensure
2658 that if message blocks of the stack are chained together, we
2659 will not call release on message blocks of the stack.
2661 Also note that release() should only be called on message blocks
2662 that have been dynamically allocated. Message blocks of the
2663 stack will clean up properly when the activation record of the
2664 method completes. Dynamically allocated messages blocks should
2665 *never* be chained with message blocks allocated of the stack.
2667 * examples/ASX/Event_Server/Event_Server/Peer_Router.h: Removed
2668 empty definitions of assignment operator and copy constructor.
2670 * examples/ASX/Event_Server/Event_Server/event_server.cpp
2671 (handle_input): Added code here will make sure we actually wait
2672 for the user to type something. On platforms like Win32,
2673 handle_input() is called prematurely (even when there is no
2676 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Changed
2679 Wed May 7 22:55:00 1997 James C Hu <jxh@polka.cs.wustl.edu>
2681 * JAWS/server/*: Debugging changes! GET and HEAD both work
2682 now. As well as changes to make it compile cleanly on
2683 VXWORKS, as reported by David.
2685 Wed May 07 16:05:39 1997 David L. Levine <levine@cs.wustl.edu>
2687 * ace/Makefile: added Timer_Wheel to FILES. Thanks to Thilo
2688 Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
2690 * include/makeinclude/platform_irix6.2_sgic++.GNU: enabled CPPFLAGS
2691 to instantiate all templates so that gatewayd will build.
2692 Thanks to Nathan N. Vuong <nvuong@mail08.mitre.org> for reporting
2693 this problem and Eric Dean Russell <edrusse@somnet.sandia.gov>
2694 for supplying and the fix.
2696 * ace/Map_Manager.h: updated comments to indicate that find
2697 functions return a non-negative integer if the item is found.
2699 * ace/Map_Manager.cpp (find_i (const EXT_ID &, INT_ID &)): return
2700 index instead of 0 if the item is found, to be consistent with
2701 find_i (const EXT_ID &).
2703 * ace/IOStream.cpp (ACE_Streambuf_T ctor): added initializations of
2704 eback_saved_ and pbase_saved_ to avoid unitialized memory read
2705 reports from Purify.
2707 Tue May 6 07:39:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2709 * ace/Service_Config.cpp (open): Make sure to perform the
2710 daemonization logic first so that we get a new process created
2711 before initializing reactors, etc. Thanks to Adrian Salt
2712 <acsalt@magi.com> for reporting this.
2714 * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main):
2715 Changed ACE::INVALID_HANDLE to ACE_INVALID_HANDLE.
2716 Thanks to Dani Flexer <danif@alice.actcom.co.il> for
2719 * tests/Conn_Test.cpp (compare_i): Changed the comparison from
2720 a1 == a2 to a1 != a2 since this appears to be what is needed.
2721 We need to improve the comments here!
2723 * tests/Conn_Test.cpp: Split the definition of the Svc_Handler
2724 template into its own Conn_Test.h file to work around "features"
2725 with AIX C++. Thanks to Chris Lahey for reporting this.
2727 * ace/Containers.cpp: Fixed a bug in the set() method for
2728 ACE_Unbounded_Queue. Again, thank goodness for cs242!
2730 * ace/Containers.cpp: Fixed a bug in the enqueue_head() logic for
2731 ACE_Unbounded_Queue. Thank goodness for cs242 ;-).
2733 * ace/Containers.cpp: Added a destructor for ACE_Node to keep the
2736 Tue May 06 11:31:49 1997 David L. Levine <levine@cs.wustl.edu>
2738 * netsvcs/lib/*.cpp: removed break statements after
2739 ACE_RETURNs to avoid unreachable statement warnings from
2742 * ace/OS.cpp (mktime): added time_t cast of -1 (error) return
2743 to avoid compiler warning.
2745 * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SIGNED_CHAR.
2747 * ace/Containers.cpp (dequeue_head): fixed typos in variable names.
2749 * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
2750 removed #ifdef ACE_HAS_TLI around some template specializations so
2751 that this subproject will build on platforms non-TLI platforms such
2754 Tue May 6 17:02:54 1997 James C Hu <jxh@polka.cs.wustl.edu>
2756 * ace/OS.{h,i}: Added strftime (). Also, enhanced strcasecmp
2757 implementation to account for lexicographical ordering for
2760 * apps/JAWS/server/Parse_Headers.{h,cpp} (class Headers_Map):
2761 Changed signature of casting operator to return a pointer
2762 rather than a reference to a constant pointer, to fix
2763 anachronism warning Doug found.
2765 * apps/JAWS/server/HTTP_Config.{h,cpp}: Added class
2766 HTTP_Config to be a container for HTTP server options
2767 such as locations of directories, port, etc.
2769 * apps/JAWS/server/HTTP_Helpers.{h,cpp}: Added code to enhance
2770 support for CGI scripts:
2771 - Added HTTP_decode_string to HTTP_Helper class, to deal
2774 * apps/JAWS/server/HTTP_Request.{h,cpp}: Added code to enhance
2775 support for CGI scripts:
2776 - Added cgi_, cgi_env_, and cgi_args_ data members to
2777 and corresponding accessors.
2778 - Added nice accessors to the important data members to
2779 simplify other parts of the code.
2780 - Added method to parse URI to determine the name of the CGI
2781 executable if present.
2783 * apps/JAWS/server/HTTP_Response.{h,cpp}: Added code to
2784 enhance support for CGI scripts:
2785 - Hooks are now present to make the appropriate calls
2786 to activate a CGI program.
2788 * apps/JAWS/server/*.{h,cpp}
2789 Various changes from the ACE mailing list incorporated.
2790 Cosmetic changes for ACE coding style.
2794 Tue May 6 00:00:54 1997 Chris Cleeland <cleeland@cs.wustl.edu>
2796 * ace/Message_Block.cpp: Added template specialization for
2797 ACE_Guard<> that prevented ACE from compiling under Linux.
2799 Mon May 5 22:17:15 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
2801 * apps/JAWS/stress_testing: Removed the usleep definition from
2802 global.h, it was unused by the program.
2804 Mon May 05 21:01:42 1997 David L. Levine <levine@cs.wustl.edu>
2806 * ace/config-linux*.h: added ACE_HAS_STRING_CLASS. Thanks to
2807 Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this.
2809 Mon May 05 19:58:16 1997 <irfan@TWOSTEP>
2811 * ace/ace.{mak,mdp}: Readded IOStream.cpp to the makefile.
2813 * ace/Synch_T.h: Added ACE_SYNCH_RECURSIVE_MUTEX.
2815 * ace/Timer_Queue: Added an extra template parameter to
2816 Timer_Queues that specifies the type of locking to be used
2817 inside of the timer queue.
2819 Also changed the functor callback routines so that they are more
2820 descriptive compared to operator ().
2822 Mon May 5 21:37:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2824 * ace/Message_Block: Revised the release() logic for
2825 ACE_Message_Block and ACE_Data_Block so that we will delete both
2826 within the same block of code in order to hold the lock. This
2827 should prevent nasty race conditions in multi-threaded programs.
2828 Thanks to Craig Perras <craig.perras@CyberSafe.COM> for
2829 reporting this problem.
2831 * ace/Message_Block.cpp: Replaced an explicit acquire()/release()
2832 of ACE_Lock::locking_strategy_ with a call to an ACE_Guard.
2834 * ace/Containers.cpp (set): Optimized for the common case where
2835 we're increasing the size of the set by 1.
2837 * ace/Containers: Merged the ACE_Set_Node, ACE_Stack_Node, and
2838 ACE_Set_Node into a single "ACE_Node" class. This tidies up the
2841 * ace: Removed the Set.* and Stack.* files and replaced them with
2842 the Containers.* files. This file contains the ACE_*Stack,
2843 ACE_*Queue, and ACE_*Set classes. If this revised file scheme
2844 breaks existing code please let me know and I'll provide
2845 backwards compatibility.
2847 * ace/Stack: Changed the name of ACE_Unbounded_Queue::enqueue() to
2848 ACE_Unbounded_Queue::enqueue_tail() and also added
2849 ACE_Unbounded_Queue::enqueue_head().
2851 * ace/OS: Changed the names of the parameters of the ACE_OS::mem*
2852 methods from ACE_OS::mem* (void *s, const void *t) to
2853 ACE_OS::mem* (void *t, const void *s) since "t" should stand for
2854 "target" and "s" for "source." Thanks to Andres Kruse
2855 <Andres.Kruse@cern.ch> for pointing this out.
2857 * ace/Stack: Removed the peek() method from ACE_Unbounded_Queue.
2858 This functionality is now subsumed by the get(..., 0) method.
2859 If this breaks any existing code please let me know.
2861 * ace/Stack.h: Moved all the functionality from ACE_Unbounded_Set
2862 into ACE_Unbounded_Queue. That's really where this belonged in
2863 the first place. Thanks to David Levine for noticing this.
2865 * ace/Set.h: Moved ACE_Set_Node from the *.cpp file into the *.cpp
2866 file in anticipation of AIX C++ compiler bugs ;-).
2868 * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
2869 Rearranged the location where we register to receive standard
2870 input so that the socket handle will not be initialized at this
2871 point. Thanks to craig perras <craigp@wolfenet.com> for
2874 * examples/ASX/Event_Server/Transceiver/transceiver.cpp
2875 (Event_Transceiver): Make sure to #ifdef around SIGQUIT for
2876 WIN32 since it lacks this signal. Thanks to craig perras
2877 <craigp@wolfenet.com> for reporting this.
2879 * ace/config-osf1-4.0-g++.h: Removed the ACE_LACKS_SIGNED_CHAR
2880 since this seems to be compiler specific. Thanks to Thilo for
2883 * ace/Strategies_T: Added a number of fixes and enhancements to
2884 the new Hash_Addr and ACE_Cached_Connect_Strategy classes.
2886 * ace/Strategies_T.h: Added #include for "Hash_Map_Manager.h".
2887 Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
2889 * ace/config-hpux-10.*.h: Applied a number of patches courtesy of
2892 * ace/Dump.cpp: Changed a cast from
2894 delete (ACE_Dumpable_Ptr *) this->dumper_;
2898 delete (ACE_Dumpable *) this->dumper_;
2900 This fixes a potential bug. Thanks to Carlos O'Ryan for this
2904 * ace/SPIPE_Stream.h: Removed the = 0 default value for one send()
2905 method to avoid ambiguity with the other send() method. Thanks
2906 to Carlos O'Ryan for this bug report.
2908 * ace/Map_Manager.cpp (advance): Removed a cast to size_t since
2909 that is always true. Thanks to David Levine for pointing this
2912 * ace/XtReactor: Moved the remove_handler_i() and
2913 register_handler_i() methods into the protected portion
2914 of the class. Since these should never be called by the
2915 client I've moved them into protected portion to ensure this
2918 * ace/XtReactor: Changed the implementation of the XtReactor to
2919 use long for dealing with timers. Thanks to Stuart Powell
2920 <stuartp@in.ot.com.au> for reporting this.
2922 Mon May 5 17:16:41 1997 Carlos O'Ryan <coryan@mat.puc.cl>
2924 * ace/config-hpux-10.x.h, config-hpux-10.x-nothread.h:
2925 Some patches are needed to compile ACE under HP-UX (using HP/C++),
2926 I documented those patches.
2928 Mon May 05 11:50:39 1997 David L. Levine <levine@cs.wustl.edu>
2930 * netsvcs/lib/Server_Logging_Handler.cpp: fixed ACE_Svc_Handler
2931 specializations, yet again, for Linux w/LXPthreads. Thanks to
2932 Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this
2933 problem with sufficient detail for us to track it down.
2935 * ace/Stack.* (ACE_Unbounded_Queue):
2937 1) made peek () const.
2938 2) added another peek (u_int index = 0) function that can peek
2939 at any queue item, not just the first. It returns a pointer
2940 to the item (or 0 if not found), to avoid copying.
2941 3) changed return type of size () from int to size_t.
2944 * ace/Strategies_T.cpp (connect_svc_handler, operator==):
2947 * netsvcs/lib/Server_Logging_Handler.cpp: fixed template
2948 specializations for platforms that have neither THREADS nor
2949 TLI. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
2951 Sun May 4 12:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
2953 * ace/OS.cpp: If ACE_HAS_THREADS isn't defined then we'll just
2954 use mktime() without the locking.
2956 * ace/Set: Removed the get() methods from the ACE_Fixed_Set and
2957 ACE_Bounded_Set since they don't make much sense on these
2960 * ace/Set: Changed the new "find" method to be called "get" to
2961 correspond to the new "set" method I'm adding.
2963 * ace/SString.cpp: Added a operator << for ACE_CString in
2964 order to print it with iostreams.
2966 * ace/Set.cpp: Added a reset method to the ACE_Unbounded_Set to
2967 remove all the nodes without completely destroying the set.
2969 * ace/SString: Added friend operator+ to both ACE_CString and
2970 ACE_WString in order to provide a concatenation operator.
2972 * ace/SString: Added a compare() method to all the ACE String
2973 classes. This behaves just like the Standard C library strcmp()
2976 * ace/Message_Queue.i: Oddly, there were a bunch of methods
2977 defined in this *.i file that didn't have ACE_INLINE in front of
2978 them. I'm surprised this didn't give compile errors on some
2979 platforms. I've fixed this by moving these methods into the
2983 ace/Service_Repository,
2988 ace/Hash_Map_Manager,
2989 ace/Set: Added a done() method on all the iterators so that
2990 we can check within the iteration itself to see if there are any
2991 remaining elements. In addition, updated the return value of
2992 advance() on all iterators so that it returns 1 if we're not
2993 done and 0 if we're done.
2995 Sun May 04 07:22:49 1997 David L. Levine <levine@cs.wustl.edu>
2997 * ace/Timer_Heap_T.cpp: changed some more int declarations to longs.
2999 Sat May 3 17:38:19 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
3001 * Changed all uses of Reactor::{scheduler_timer,cancel}() and
3002 Timer_{Queue,List,Heap,Wheel}::{schedule,cancel}() to use
3003 long rather than int. This is important since it ensures that
3004 we can make the Timing Wheels trick of casting the
3005 Timer_Node * to long work correctly on machines that have 64
3006 bit pointers, 64 bit longs, and 32 bit ints (e.g,. DEC
3007 ALPHA). Thanks to Thilo Kielmann
3008 <kielmann@informatik.uni-siegen.de> for pointing this out,
3009 even though he finds this solution distasteful ;-).
3011 * netsvcs/lib/TS_Clerk_Handler.cpp (initiate_connection): I
3012 believe there was also a bug here -- if schedule_timer() returns
3013 0 that's not an error!
3015 * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
3016 (initiate_connection): I believe there was a bug here -- if
3017 schedule_timer() returns 0 that's not an error!
3019 * tests/IOStream_Test.cpp: Added some minor changes for DEC UNIX.
3020 Thanks to James CE Johnson <jjohnson@lads.com> for reporting
3023 * ace/IOStream: Added a number of minor changes for DEC UNIX.
3024 Thanks to James CE Johnson <jjohnson@lads.com> for reporting
3027 * ace/config-osf1-4.0.h: Added
3028 ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS to the config.h file.
3029 Thanks to James CE Johnson <jjohnson@lads.com> for reporting
3032 * ace/SString: Made the ace_string_null_string_ a static data
3033 member rather than an external constant. This should control
3034 the name space a bit better.
3036 * ace/SString.cpp: Fixed the ACE_CString::operator += so that it
3037 won't screw up if this->rep_ initially points to the
3038 ACE_String_null_string_.
3040 * examples/Misc: Added a new test_set.cpp program that exercises
3041 the ACE_*_Set classes.
3043 Sat May 03 06:56:10 1997 David L. Levine <levine@cs.wustl.edu>
3045 * ace/Map_Manager.cpp (dtor): removed void return (typo).
3047 * ace/Set.cpp (ACE_Fixed_Set<T>::operator =): typo: fs instead of bs.
3049 * ace/Set.cpp (ACE_Fixed_Set<T, SIZE>::find): typo: index instead of i.
3051 * ace/IOStream.cpp: fixed typo: "#if defined" instead of just "#if".
3053 * tests/Conn_Test.cpp,
3054 netsvcs/lib/{Client_Logging_Handler,TS_Clerk_Handler}.cpp,
3055 netsvcs/clients/Tokens/manual/manual.cpp,
3056 apps/Gateway/Gateway/Event_Channel.cpp,:
3057 apps/JAWS/client/Blob.cpp,
3058 examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
3059 examples/ASX/Event_Server/Transceiver/transceiver.cpp,
3060 examples/ASX/UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
3061 examples/Connection/misc/test_upipe.cpp,
3062 examples/Connection/non_blocking/test_*_connector.cpp: added
3063 ACE_Map_Entry template specialization. It's needed now that the
3064 destructor is explicit.
3066 Fri May 2 14:57:56 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3068 * ace/Map_Manager.cpp: Added a no-op destructor to ACE_Map_Entry
3069 just to keep some compilers happy. Thanks to Chuck Gehr for
3072 * ace/config-osf1-4.0.h: Added
3074 #define ACE_LACKS_IOSTREAM_FX
3075 #define ACE_LACKS_LINEBUFFERED_STREAMBUF
3076 #define ACE_LACKS_SIGNED_CHAR
3078 Thanks to James CE Johnson <jjohnson@lads.com> for reporting
3081 * ace/Timer_{Wheel,Heap,List}_T.h: Fixed a typo in all these
3082 classes that was failing to put the keyword "class" after
3083 "friend." Also, replaced the use of the typedef with the
3084 expanded name of the class to work around problems with DEC
3085 C++. Thanks to James CE Johnson <jjohnson@lads.com> for
3088 * ace/Set: Added a find() method that will return the "ith"
3091 * ace/Set: Added copy constructors and assignment operators to all
3092 the ACE_*_Set classes.
3094 * ace/Set.cpp: Changed the implementation of ACE_Unbounded_Set to
3095 use a dummy node and a circular list. This improves performance
3096 and also makes it possible to implement "queue" semantics for
3097 inserting at the tail of the set.
3099 * ace/config-osf1-4.0.h: Added the ACE_HAS_STRING_CLASS macro.
3100 Thanks to James CE Johnson <jcej@lads.com> for this.
3102 * ace/IOStream: Added the ACE_HAS_STRING_CLASS macro to
3103 replace the nasty #ifdefs we had previously. Thanks to
3104 James CE Johnson <jcej@lads.com> for this.
3106 * ace/config*.g++: Added ACE_HAS_STRING_CLASS for all the GNU
3107 compilers and Win32.
3109 * ace/config-mvs.h: Added a new version that contains support for
3110 IBM OS/390 r2. Thanks to Chuck Gehr for this.
3112 Fri May 02 08:14:30 1997 David L. Levine <levine@cs.wustl.edu>
3114 * examples/ASX/Event_Server/Transceiver/transceiver.cpp: removed
3115 specializations of ACE Guards because they're in libGateway.
3116 Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this problem.
3118 * examples/ASX/Event_Server/Transceiver/{Makefile,transceiver.cpp}:
3119 added template specializations to transceiver.cpp so that it no
3120 longer needs to be linked with libGateway.
3122 * examples/ASX/Event_Server/Event_Server/{Makefile,Peer_Router.cpp}:
3123 added template specialization to Peer_Router.cpp so that event_server
3124 no longer needs to be linked with libGateway.
3126 Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting the above
3129 * apps/Gateway/Peer/{Makefile,Peer.cpp}: added template
3130 specialization to Peer.cpp so that peerd no longer needs to
3131 be linked with libGateway.
3133 * Log_Msg.cpp (VxWorks only): fixed used of ::taskDeleteHookAdd (it
3134 should only be called once for all Log_Msg instances) and added call
3135 to ::taskDeleteHookDelete to clean up when the last task exits.
3136 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
3139 * tests/Conn_Test.cpp: changed some fprintf print specifiers to avoid
3140 g++ warnings about printing pointer values.
3142 Thu May 01 00:05:59 1997 <irfan@TWOSTEP>
3144 * tests/Time_Service_Test.cpp (main): Made sure that the backing
3145 store is not there at the start of the program. We need to make
3146 sure because this test kills the Time Clerk and on some
3147 platforms the Clerk is not allowed to do a graceful shutdown. By
3148 cleaning the backing store here, we are sure that we get a fresh
3149 start and no garbage data from a possible aborted run.
3151 The old code deleting the backing store at the end of the test
3152 is still there but does not work on Win32 as unlink fails with
3153 ERROR_ACCESS_DENIED. I am not sure why this is happening! For
3154 now the unlink at the start of the program will do.
3156 Also added a wait for the clerk before deleting the backing
3157 store. This way we are sure that we do not delete the backing
3158 store before the clerk is done with it.
3160 * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed an obscure bug with
3161 ACE_TS_Clerk_Processor. ACE_TS_Clerk_Processor (which is an
3162 ACE_Connector) and all its pending connection objects are still
3163 registered with the Reactor when the process exits and the
3164 Service_Object is deleted. After this the destructor of the
3165 Reactor then calls handle_close on ACE_TS_Clerk_Processor
3166 (which does not exist anymore), causing a seg fault. The
3167 solution is to call ACE_Connector::fini from
3168 ACE_TS_Clerk_Processor::fini. ACE_Connector::fini will
3169 unregister ACE_TS_Clerk_Processor and all pending connects from
3172 Wed Apr 30 17:47:11 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
3174 * ace/OS.i (getpwnam_r): Changed the expression to check if
3175 getpwnam_r() returns -1 for AIX. Thanks to Chris Lahey for
3178 * ace/Timer_Wheel_T.h: changed
3180 // = Don't allow these operations for now.
3181 ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T &);
3182 void operator= (const ACE_Timer_Wheel_T &);
3186 // = Don't allow these operations for now.
3187 ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
3188 void operator= (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
3190 Thanks to Chuck Gehr for reporting this.
3192 * ace/OS.cpp: Made mktime() thread-safe. If any platforms support
3193 multi-thread safe versions of mktime() please let me know so we
3194 can set the ACE_HAS_MT_SAFE_MKTIME macro for that config file.
3196 * ace/OS.i: Added a new special case for getpwnam_r() on AIX.
3197 Thanks to Chris Lahey for reporting this.
3199 Wed Apr 30 16:01:04 1997 James C Hu <jxh@polka.cs.wustl.edu>
3201 * ace/OS.i, ace/OS.h: added mktime().
3203 Wed Apr 30 14:17:34 1997 David L. Levine <levine@cs.wustl.edu>
3205 * ace/config-vxworks*.h: added ACE_LACKS_PWD_FUNCTIONS. Thanks
3206 to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
3209 * ace/OS.i: cleaned up ACE_LACKS_PWD_FUNCTIONS comments a bit.
3211 * ace/Array.{h,i}: added const operator [].
3213 * ace/Array.cpp (ctors): reordered initializers to match declaration
3216 * netsvcs/lib/Server_Logging_Handler.cpp: protect against multiple
3217 inclusion. Thanks to Kevin Martindale
3218 <kevin_martindale@stortek.com> for reporting this problem.
3220 Wed Apr 30 08:42:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3222 * ace: Added a new generic Array class, which we'll use until
3223 STL becomes more widely portable.
3225 * ace: Added a new macro ACE_LACKS_GETPGID to clean up the code
3226 in ACE_OS::getpgid().
3228 * ace: Added new config*.h files and platform*.GNU files for
3229 FreeBSD. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for these.
3231 Wed Apr 30 07:44:36 1997 David L. Levine <levine@cs.wustl.edu>
3233 * ace/config-osf1-4.0*.h: removed ACE_HAS_SIGWAIT.
3235 * ace/OS.{h,i}: applied Thilo's patch for sigwait on Digital
3236 Unix 4.0, which defines sigwait as a macro. Thanks to
3237 Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
3238 this and the above config file patches.
3240 * ace/IOStream.{h,cpp}: James CE Johnson <jcej@lads.com> updated
3241 the IOStream class; see comments in IOStream.h.
3243 * examples/Logger/client/logging_app.cpp (main),
3244 performance-tests/Misc/test_naming.cpp (*): replaced sprintf
3245 with ACE_OS::sprintf. Thanks to Thilo Kielmann
3246 <kielmann@informatik.uni-siegen.de> for reporting these.
3248 Tue Apr 29 20:03:38 1997 <sumedh@cs.wustl.edu>
3250 * apps/JAWS/stress_testing/http_tester.cpp : Removed usage
3251 of pow (), and changed method of calculating throughput/latency
3252 to use straight multiplication instead of pow (). Updated
3253 Makefile to not link -lm.
3255 Tue Apr 29 19:57:52 1997 <irfan@TWOSTEP>
3257 * config-win32-common.h (ACE_HAS_TEMPLATE_SPECIALIZATION): Win32
3258 supports this option. Added to config file.
3260 * ace: Removed tracing for the following to make things work with
3264 ACE_FIFO_Send_Msg::send
3265 ACE_SPIPE_Stream::send
3266 ACE_Sig_Guard::ACE_Sig_Guard
3267 ACE_Sig_Guard::~ACE_Sig_Guard
3269 * netsvcs/servers/main.cpp (main): Added special code for Win32
3270 such that only SIGINT is being registered with the Signal
3271 Handler. SIGQUIT is not supported on Win32.
3273 * netsvcs/lib/Token_Handler.cpp (init): Removed the registration
3274 of the Acceptor for SIGINTs.
3276 * netsvcs/lib/TS_Server_Handler.cpp (init): Same as above.
3278 * netsvcs/lib/Client_Logging_Handler.cpp (open): Removed the
3279 registration of SIGPIPE for Win32. Win32 does not support
3282 * tests/Process_Strategy_Test.cpp (server): The new thread must
3283 become owner before it can call Reactor::handle_events. Also
3286 * ace/OS.cpp (socket_fini): Remove the ACE error message as the IO
3287 Stream objects are already gone by this point in the program.
3289 * examples/Registry/Registry.mak: Replaced the old makefiles with
3290 this one. Also added _AFXDLL as a preprocessor define, forcing
3291 the correct inclusion of header files that give a consistent
3292 definition of HKEY. This is a hack till we have a better
3295 * ace/Event_Handler: Removed the old Proactor callback methods.
3297 Tue Apr 29 17:39:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3299 * ace/config-mvs.h: Added #define ACE_LACKS_LINEBUFFERED_STREAMBUF
3300 for MVS. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
3303 * ace: Commented out ACE_TRACE calls in constructors in
3304 several ACE classes in order to avoid problems with circular
3305 initialization dependencies related to mutexes that are
3306 breaking code on WinNT when ACE_NTRACE is set to 0. Thanks
3307 to Lothar Hermann <hermann@csaserv.med.siemens.de> for
3310 * ace/Reactor.cpp: It looks as if Windows NT isn't returning
3311 the number of bytes requested by a WinSock recv() used in
3312 the ACE_Reactor::notify() in some situations. This is
3313 causing problems for test programs under heavy load. The
3314 fix appears to be to add an additional ACE::recv() to obtain
3315 the remaining bytes. Thanks to Karlheinz for reporting this
3316 and to Irfan for helping to fix it.
3318 * ace/OS.i: Fixed a very subtle bug with ACE_OS::cond_wait() and
3319 ACE_OS::cond_signal() that only manifests itself when
3320 ACE_HAS_SIGNAL_OBJECT_AND_WAIT is enabled (which isn't the
3321 default). The problem stemmed from the fact that we were
3322 assuming that if we used condition variables it implied that the
3323 external mutex had USYNC_PROCESS scope. In fact, the external
3324 mutexes typically have USYNC_THREAD scope, so
3325 SignalObjectAndWait() was hanging indefinitely. Fortunately,
3326 the fix was easy -- just add a run-time check for the type of
3327 the external mutex and take the appropriate action. Thanks to
3328 Irfan for noticing this.
3330 * tests/Reader_Writer_Test.cpp: Added a parse_args() function that
3331 allows us to override the default number of reader/writer
3332 threads + the number of iterations.
3334 * ace/OS: Added patches for Digital UNIX to handle the
3335 getpwnam_r() name. Thanks to Thilo Kielmann
3336 <kielmann@informatik.uni-siegen.de> for these patches.
3338 Tue Apr 29 14:27:19 1997 <harrison@samba.cs.wustl.edu>
3340 * OS.h: Added ACE_HAS_SVC_DLL. If you write a library and
3341 want it to use ACE_Svc_Export, this will cause those macros
3342 to build dlls. If you want your ACE service to be a static
3343 library, comment out this line. As far as I know, the only
3344 reason to have a library be an ACE "service" is to leverage
3345 the ACE_Svc_Export macros. It's just as easy to define your
3348 Tue Apr 29 07:25:25 1997 David L. Levine <levine@cs.wustl.edu>
3350 * apps/JAWS/server/HTTP_Request.h (HTTP_Request): added destructor
3353 * apps/JAWS/server/Parse_Headers.cpp (parse_header_line): assign local
3354 "value" to value_ field of map_[header].
3356 * apps/JAWS/server/HTTP_Request.cpp (HTTP_fix_path): commented this
3357 static function out because it's not used, and g++ warns about that.
3359 * apps/JAWS: added CVS header to all .h, .i, and .cpp files.
3361 Tue Apr 29 00:33:46 1997 <irfan@TWOSTEP>
3363 * examples/Reactor/Misc/notification.cpp: Add this test to the
3366 * ace: Removed config-win32-msvc2.0.h, config-win32-msvc4.0.h
3367 config-win32-msvc4.x.h, and config-winnt-4.0-msvc.h from the
3368 repository. These files have been replaced by config-win32.h
3369 and config-win32-common.h.
3371 * IOStream_Test.cpp (main): Added return 0 at the end of main().
3373 * examples/Reactor/Proactor/test_proactor.mak: Added wsock32.lib
3374 to the link line. I am not sure why we have to do this again
3375 since ace.lib already includes it. Without this library in the
3376 link line, GetAcceptExSockaddr is not defined. Go figure!
3378 * apps/JAWS/server/jaws.mak: Same as above.
3380 * ace/ace.{mak,mdp}: Fixed the generation of the release version
3381 of ace.dll such that wsock32.lib is automatically included.
3383 Tue Apr 29 00:16:27 1997 James C Hu <jxh@polka.cs.wustl.edu>
3385 * JAWS: Changes to support CGI scripts
3387 Changed the following files --
3388 HTTP_Handler.cpp HTTP_Handler.h HTTP_Helpers.cpp
3389 HTTP_Helpers.h HTTP_Request.cpp HTTP_Request.h IO.cpp IO.h
3391 Added the following files --
3392 HTTP_Response.cpp HTTP_Response.h Parse_Headers.cpp
3398 * JAWS/stress_testing: Changed the Makefile to link in the math
3401 * ace/OS.h and ace/OS.i: Added support for memmove().
3403 Mon Apr 28 21:35:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3405 * ace/IOStream.h: Added a new macro called
3406 ACE_LACKS_IOSTREAM_SETGET, which works around bugs with SGI C++
3407 on IRIX 6.2. Thanks to Torbjorn Lindgren <tl@funcom.com> for
3410 * ace/Timer_List_T.h: Replaced the use of
3411 ITERATOR with ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR> to
3412 work around problems with SGI C++. Thanks to
3413 Torbjorn Lindgren <tl@funcom.com> for reporting this.
3415 * ace/Timer_List_T.cpp: Removed the use of NODE * and replaced it
3416 with ACE_Timer_Node_T<TYPE, FUNCTOR> in order to work around
3417 bugs with certain C++ compilers (i.e., SGI). Thanks to Torbjorn
3418 Lindgren <tl@funcom.com> for reporting this.
3420 * tests/Conn_Test.cpp: Removed some extraneous template
3421 specializations. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for
3424 * apps/JAWS/client/Blob.cpp: Rearranged some of the template
3425 specializations in the hope of fixing a linker problem with
3428 * ace/config-irix-6.2*.h. It appears that SGI IRIX 6.2 supports
3429 pread() and pwrite() so I enabled the ACE_HAS_P_READ_WRITE macro
3430 in the IRIX 6.2 config file.
3432 * ace/OS.cpp: Implemented ACE_OS::pread() and ACE_OS::pwrite() for
3433 systems that lack this feature. The implementation uses the new
3434 ACE_Thread_Mutex monitor lock in order to ensure atomicity
3435 between the lseek() and the read()/write().
3437 * ace/OS.cpp: Finally broke down and added a ACE_Thread_Mutex
3438 monitor lock to the ACE_OS implementation file. This is useful
3439 for situations where we need to serialize certain ACE_OS
3440 emulation calls (e.g., ACE_OS::{pwrite,pread}).
3442 Mon Apr 28 15:42:48 1997 David L. Levine <levine@cs.wustl.edu>
3444 * apps/JAWS/client/blobby.cpp: updated template specializations.
3446 * apps/JAWS/stress_testing/global.h: removed #includes of system
3447 headers because ace/OS.h takes care of them. They were causing
3448 warnings with g++ (because they were #included before OS.h).
3450 * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
3451 typos in template specializations.
3453 * tests/Conn_Test.cpp,Message_{Block,Queue}_Test.cpp,
3454 Process_Strategy_Test.cpp: fixed template specializations
3455 for platforms without threads. Thanks to Nanbor Wang
3456 <nw1@cs.wustl.edu> for pointing out this problem.
3458 * ace/Connector.h: use ACE_SYNCH_RW_MUTEX in Map typedefs
3459 instead of old ACE_RW_Mutex (which should have been
3460 ACE_Thread_RW_Mutex) and ACE_Null_Mutex (depending on
3461 whether the platform has threads).
3463 * ace/Service_Record.cpp: added ACE_NULL_SYNCH template
3464 specializations with threads, because they're still needed even
3465 with threads. This way, individual programs don't have to
3468 * ace/Task.cpp: added ACE_TSS<ACE_Task_Exit> and
3469 ACE_TSS<ACE_Dynamic> template specializations, if the platform
3470 has threads and TSS. This way, individual programs don't have
3473 * apps/Gateway/Gateway/Event_Channel.cpp,
3474 Proxy_Handler{,_Connector}.cpp,apps/JAWS/server/HTTP_Server.cpp,
3475 examples/ASX/Event_Server/Transceiver/transceiver.cpp,
3476 examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp,
3477 examples/Connection/blocking/SPIPE-connector.cpp,
3478 examples/Connection/misc/{Connection_Handler,test_upipe}.cpp,
3479 examples/Connection/non_blocking/test_*.cpp,
3480 examples/IOStream/server/iostream_server.cpp,
3481 examples/Logger/Acceptor-server/server_loggerd.cpp,
3482 examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
3483 netsvcs/lib/Client_Logging_Handler.cpp,
3484 netsvcs/lib/TS_{Clerk,Server}_Handler.cpp:
3485 removed template instantiations that are now in
3486 ace/Service_Record.cpp and ace/Task.cpp. This should help
3487 on platforms without threads.
3489 * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
3490 typos in template specializations.
3492 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: protected
3493 the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
3495 * examples/ASX/Event_Server/Transceiver/transceiver.cpp: protected
3496 the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
3498 * apps/JAWS/stress_testing/benchd.cpp (serve): added return -1 if
3499 the strcmp () fails so that the function always returns a value.
3501 Mon Apr 28 18:53:58 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
3503 * ace/OS.h: Added ACE_DEFAULT_TIMER_WHEEL_SIZE and
3504 ACE_DEFAULT_TIMER_WHEEL_RESOLUTION constants.
3506 * ace/Timer_Wheel_T.h: switched to use these constants
3508 * tests/Timer_Queue_Test.cpp: switched to use these constants
3510 * ace/Timer_Wheel: added a new strategy for Timer Queues, one
3511 based on a hash table of ordered lists.
3513 These files were added:
3516 - ace/Timer_Wheel_T.h
3517 - ace/Timer_Wheel_T.cpp
3519 These files were also changed to accomodate Timer Wheel
3521 - ace/Timer_Queue.cpp
3522 - ace/Timer_Queue_T.h
3523 - ace/Timer_Queue_T.cpp
3524 - tests/Timer_Queue_Test.cpp
3526 Mon Apr 28 17:32:04 1997 Chris Cleeland <cleeland@cs.wustl.edu>
3528 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added
3529 template specializations.
3531 * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added
3532 template specializations.
3534 * ace/OS.cpp (thr_create): Hopefully resolved tension
3535 btw. priority determination algorithms for IRIX, LinuxThreads, and
3536 DEC UNIX 4.0. Thanks to Thilo for information that lead to this.
3538 Mon Apr 28 00:25:17 1997 <irfan@TWOSTEP>
3540 * apps/JAWS/client: Removed ACE_Export macro from class
3541 declarations. Fixed buffer size bug in
3542 ACE_Blob_Reader::receive_reply ().
3544 Sun Apr 27 22:22:14 1997 <irfan@TWOSTEP>
3546 * ace/Proactor: The Proactor can now be registered with ReactorEx
3547 and both of them can be run from ReactorEx's event loop. Added a
3548 flag to Proactor's constructor that indicates whether the
3549 Proactor will be used in conjunction with ReactorEx event
3550 loop. Only if this flag is set will the event in the Proactor be
3551 used by the Asynch IO components. This will help with
3554 * examples/Reactor/Proactor/test_multiple_loops.cpp: Added a new
3555 test that shows the integration of the event loops of Proactor
3558 * ace/Asynch_IO: Added an ACE_EVENT parameter to the constructors
3559 of classes that inherit from the OVERLAPPED structure. This way
3560 the Proactor's event_ can be set in the OVERLAPPED structure.
3562 Also changed the open methods on the Asynch IO classes to take a
3563 Proactor as an extra parameter.
3565 Changed ACE_Handler's handle_timeout() to handle_time_out() in
3566 ACE_Handler. This is temporary till we decide on the argument
3567 about mixing the interface of ACE_Event_Handler and
3568 ACE_Handler. This change allows user to inherit from ACE_Handler
3569 and ACE_Event_Handler and use the different handle_timeout()
3570 method, one of which returns void and the other return an int.
3572 * examples/Reactor/Proactor/test_timeout.cpp: This file got
3573 affected by the above change.
3575 Sun Apr 27 17:44:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3577 * ace/OS.h: Added a new #define called ACE_DEFAULT_HTTP_SERVER_PORT.
3578 Naturally, this defaults to 80...
3580 * apps/JAWS/client/blobby.cpp: Cleaned up the blobby example so
3581 that it conforms more closely to the ACE style guide.
3583 * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Took out
3584 the VxWorks-specific #ifdefs. I believe this is fixed in ACE_OS
3585 now. If not, the burden of proof is on the VxWorks testers to
3588 * ace/Synch_T.h: Added a new macro ACE_SYNCH_RW_MUTEX to
3589 complement the existing ACE_SYNCH_MUTEX and ACE_SYNCH_CONDITION
3590 macros. This will clean up lots of code in various test
3593 * ace/Synch_T.h: Added two new macros, ACE_SYNCH_MUTEX and
3594 ACE_SYNCH_CONDITION. These default to ACE_MT_SYNCH::MUTEX and
3595 ACE_MT_SYNCH::MUTEX if template typedefs are supported and
3596 ACE_HAS_THREADS is enabled. If template typedefs *aren't*
3597 supported but ACE_HAS_THREADS is enabled these macros turn into
3598 ACE_Thread_Mutex and ACE_Thread_Condition. Finally, if
3599 ACE_HAS_THREADS is disabled these macros turn into
3600 ACE_Null_Mutex and ACE_Null_Condition. These macros make it
3601 possible to write code that is more portable across platforms
3602 and configurations. Thanks to Carlos O'Ryan for this
3605 * ace/OS.h: Replaced all uses of ACE_SYNCH_MUTEX and
3606 ACE_SYNCH_CONDITION with ACE_SYNCH_MUTEX_T and
3607 ACE_SYNCH_CONDITION_T since (1) this usage relates to templates
3608 and (2) it frees up the namespace for the new ACE_SYNCH_MUTEX
3609 and ACE_SYNCH_CONDITION macros.
3611 * ace/Timer_Queue.cpp: Added yet more template specializations for
3612 the benefit of GCC (ugh).
3614 * ace/Timer_Wheel_T.cpp: Had to revise things just a bit to
3615 compile with GCC and it's lame template mechanism. This
3616 required changing NODE * to ACE_Timer_Node_T<TYPE, FUNCTOR> * in
3617 several method definitions.
3619 * apps/JAWS/server/HTTP_Server.h: Changed the use of ACE_WIN32 to
3620 ACE_HAS_THREAD_SAFE_ACCEPT since this is a more precise way to
3621 determine if the platform allows multiple threads to call
3622 accept() on the same port. If other platforms support this
3623 feature please make sure to add it to their config*.h files.
3625 * ace/config-win32-common.h: Defined ACE_HAS_THREAD_SAFE_ACCEPT,
3626 since Win32 allows multiple threads to call accept() on the same
3629 * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: The mutex
3630 should be ACE_RW_Mutex, not ACE_Null_Mutex...
3632 Sun Apr 27 18:13:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
3634 * ace/Proactor.h: Added Timer_Wheel support.
3636 Sun Apr 27 18:13:24 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
3638 * apps/JAWS/client: Removed blobby.h, and replaced it with
3639 blobby_options.{h,cpp}.
3641 * apps/JAWS/stress-testing: Removed unused argument warnings
3644 Sun Apr 27 07:41:44 1997 David L. Levine <levine@cs.wustl.edu>
3646 * ace/Timer_Queue.cpp: added #includes for template specializations,
3647 and removed some unused specializations.
3649 * ace/Timer_Wheel_T.cpp: added newline at end of file.
3651 * ace/Timer_Wheel_T.cpp (ACE_Timer_Wheel_T ctor): reordered
3652 initializers to match declaration order.
3654 * ace/Log_Msg.cpp (log): added support for indenting output according
3655 to the current nesting level by adding a new format specifier, I,
3656 which indents the output according to the current trace_depth_.
3657 If a width is also specified it is taken as multiplier (so that
3658 the indentation is n*trace_depth_). Thanks to Matthias Kerkhoff
3659 <make@cs.tu-berlin.de> for providing the code for this feature!
3661 * examples/Reactor/Misc/test_timer_queue.cpp: fixed typos in
3662 #includes, and added #include of ace/Timer_Heap.h.
3664 Sat Apr 26 17:19:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
3666 * ace/Timer_Queue.cpp: The correct Timer_Queue.cpp file was not
3667 checked in. Also the necessary #include was missing.
3669 * ace/Proactor.h: Proactor need all three Timer include files.
3671 * ace/ace.{mdp,mak}: Updated for changes to Timer files.
3673 * ace: Updated the following files to include /**/ before an
3674 include file directive: OS.h, config-win32-common.h,
3675 bstring.h. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
3678 Sat Apr 26 13:41:15 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3680 * ace/config-sco-5.0.0-mit-pthread.h: Added
3681 ACE_LACKS_PTHREAD_CANCEL. Thanks to Arturo Montes
3682 <mitosys@colomsat.net.co> for reporting this.
3684 * ace: Came up with a scheme that allowed us to remove the
3685 ace/Timers.{h,i,cpp} files by adding
3686 ACE_Timer_{Queue,Heap,List}_T.{h,i,cpp} files instead. Thus, no
3687 existing code should break.
3689 Fri Apr 25 17:17:06 1997 Chris Cleeland <cleeland@cs.wustl.edu>
3691 * ace/OS.cpp (thr_create): Fixed the fix from Thilo so that it
3692 compiled properly on Linux. Hopefully I didn't break his, and I
3693 should have detected the problem earlier. Mea culpa.
3695 Fri Apr 25 12:45:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
3697 * ace/OS.h: Added a new macro called ACE_HAS_SIG_MACROS for the
3698 case where the frigging OS defines things like sigismember and
3699 sigfillset as macros (ugh).
3701 * ace/FILE_IO.h: Removed a trailing default initializer from the
3702 send() method since it was ambiguous. Thanks to Carlos O'Ryan
3703 for reporting this bug.
3705 * ace/OS.i (select): Unfortunately the (operator timeval*) defined
3706 for ACE_Time_Value was not used in ACE_OS::select (int width,
3707 fd_set *rfds, fd_set *wfds, fd_set *efds, const ACE_Time_Value
3708 *timeout) because the operator cannot be applied for a
3709 ACE_Time_Value*. Therefore, I fixed this as follows:
3711 ACE_SOCKCALL_RETURN (::select (width,
3712 (ACE_FD_SET_TYPE *) rfds,
3713 (ACE_FD_SET_TYPE *) wfds,
3714 (ACE_FD_SET_TYPE *) efds,
3715 timeout == 0 ? 0 : (timeval *) *timeout) , int, -1);
3717 Thanks to Carlos O'Ryan for reporting this bug.
3719 * ace: Applied a slew of patches from Carlos O'Ryan in order to
3720 get ACE to compile on HP/UX 10.x with the aCC compiler.
3722 * ace/Shared_Memory_MM: Export the filename in
3723 ACE_Shared_Memory_MM class in order to aid debugging. Thanks to
3724 Ashish Singhai <singhai@delirius.cs.uiuc.edu> for reporting
3727 Fri Apr 25 14:58:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
3729 * ace/Timers: Updated the following files to make it compile on
3730 g++. The following files were updated:
3732 Proactor.cpp Timer_Heap.cpp Timer_List.cpp Timer_Queue.cpp
3735 Thu Apr 24 21:13:51 1997 <irfan@TWOSTEP>
3737 * ace/Timer_Queue: Decoupled the Timer Queue from
3738 ACE_Event_Handler and the callback routines in the handler
3739 (handle_timeout and handle_close). The new Timer Queue is
3740 parameterized by the type of data to store and a FUNCTOR on
3741 which methods are invoked by the Timer Queue when timeouts and
3742 cancellations occur.
3744 No changes occured to the algorithms of the different
3745 implementations of the Timer Queues (Timer List and Timer
3746 Heap). Timer Queues, Timer List, and Timer Heap were all renamed
3747 as <class>_T. However, typedef were added such that there is now
3748 an ACE_Timer_Queue, ACE_Timer_Heap, and ACE_Timer_List, each
3749 being an instantiation of the respective template classes. The
3750 instantiation is done with ACE_Event_Handler as the type of data
3751 to be stored in Timer Queue and
3752 ACE_Event_Handler_Handle_Timeout_Upcall as the FUNCTOR that does
3753 the appropriate upcall to ACE_Event_Handler.
3755 Due to these typedefs, 99.9% of existing code should not
3756 break. However, the following two will cause problems:
3758 (a) Forward declarations of Timer_Queue will not work! This is
3759 because Timer_Queue is now a typedef and not a class.
3761 (b) #include "ace/Timer_Queue.h" will not be enough to get the
3762 ACE_Timer_Queue typedef. The new typedefs are in a new file
3763 called Timers.h. This file also has typedefs for ACE_Timer_Heap
3766 Currently Proactor is the only class that uses a different
3767 instantiation of the Timer Queue class. Proactor's Timer Queue
3768 class is instantiated with ACE_Handler as the type of data to be
3769 stored in Timer Queue and ACE_Proactor_Handle_Timeout_Upcall as
3770 the FUNCTOR that does the appropriate posting to the Proactor's
3773 The Upcall Strategy is not needed any more cause it is replaced
3774 by the FUNCTORs. Thus this is removed.
3776 Small modifications were made to the following files
3777 because of the changes to Timer_Queue.
3779 - examples/Reactor/Misc/test_timer_queue.cpp
3780 - examples/Reactor/Proactor/test_timeout.cpp
3781 - tests/Timer_Queue_Test.cpp
3782 - ace/Makefile (both UNIX and Win32)
3788 * ace/Proactor: Proactor now uses the new timer queues. Proactor's
3789 Timer Queue class is instantiated with ACE_Handler as the type
3790 of data to be stored in Timer Queue and
3791 ACE_Proactor_Handle_Timeout_Upcall as the FUNCTOR that does the
3792 appropriate posting to the Proactor's completion port. This will
3793 help reduce the overhead of creating new act for each
3794 timer. This also enables the cancellation of entire
3797 * examples/Reactor/Misc: Added Win32 makefiles.
3799 * ace/Shared_Memory_MM.i: Fixed typo.
3801 * ace/SOCK_Connector.cpp: Fixed typo.
3803 Thu Apr 24 13:56:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3805 * ace/SOCK_Dgram.cpp: Added support for FreeBSD (i.e., BSD 4.4)
3806 features for passing file descriptors between processes. Thanks
3807 to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
3809 * ace/LSOCK_Stream.cpp: Added support for FreeBSD (i.e., BSD 4.4)
3810 features for passing file descriptors between processes. Thanks
3811 to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
3813 * ace/LSOCK.cpp: Added support for FreeBSD (i.e., BSD 4.4)
3814 features for passing file descriptors between processes. Thanks
3815 to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
3817 * ace/SOCK_Connector.cpp (complete): There's a bug in WinNT that
3818 causes non-blocking connects to fail. The workaround is to
3819 sleep for 1 millisecond. Thanks to Steve Huston
3820 <shuston@riverace.com> for reporting this.
3822 * ace/Connector.cpp (handle_output): There's a bug in WinNT that
3823 causes non-blocking connects to fail. The workaround is to
3824 sleep for 1 millisecond. Thanks to Steve Huston
3825 <shuston@riverace.com> for reporting this.
3827 * tests/Conn_Test.cpp: Changed from operator != to operator == to
3828 be consistent with what is required by the ACE_Hash_Map_Manager.
3830 * ace/Hash_Map_Manager: Factored out the equality comparison into
3831 an equal() method in order to facilitate template
3832 specialization. In addition, rather than using the != operator
3833 we now default to using the operator== operator and negating the
3834 result. This is consistent with the behavior of the
3837 * ace/Map_Manager: Factored out the equality comparison into an
3838 equal() method in order to facilitate template specialization.
3840 * ace/OS.i: Added a new #ifdef called ACE_LACKS_PTHREAD_CANCEL.
3841 I'm not sure which platforms should set this, but it fixes
3842 a bug with ACE_OS::thr_cancel(). Thanks to Eric Dean
3843 Russell <edrusse@somnet.sandia.gov> for reporting this.
3845 * tests/Process_Strategy_Test.cpp (handle_input): We were
3846 comparing EOF to a char, which gets complaints on platforms
3847 where char is unsigned by default. I added a cast of EOF to
3848 char to fix this. Thanks to Amos Shapira <amos@dsi.co.il> for
3851 * apps/JAWS/server/HTTP_Helpers.cpp (instance): Changed the
3852 return type from const char * to const char **. Thanks to
3853 Amos Shapira <amos@dsi.co.il> for reporting this.
3855 * ace/OS.i (getpwnam_r): Added a missing #else. Thanks to
3856 Amos Shapira <amos@dsi.co.il> for reporting this.
3858 * ace/Timer_Heap: Made many minor enhancements to ACE_Timer_Heap
3859 in an effort to figure out why we're getting memory leaks.
3861 Thu Apr 24 09:33:53 1997 David L. Levine <levine@cs.wustl.edu>
3863 * Makefile: modified the TIMESTAMP macro to update the third
3864 component, if there is one, of the version number in the VERSION
3865 file. This assumes that alpha/beta releases are numbered with
3866 three components, and that final releases are not. So, if the
3867 version number is, e.g., 4.2, it will not be modified because it
3868 is assumed to be for a final release. Manual switching between
3869 alpha/beta and final release "modes" is therefore still required.
3871 * ace/Timer_Heap.cpp (copy): added cast of max_size_ to int to avoid
3872 signed/unsigned comparison.
3874 * ace/config-sunos5.4-g++.h: removed
3875 ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES because it caused compile
3876 warnings about conversion from `(int)' to `(...)' at Signal.i:113.
3877 (And the other sunos5.4 config files don't have it.)
3878 Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
3880 * tests/Timer_Queue_Test.cpp (main): added delete of timer_ids array
3881 to avoid memory leak.
3883 Wed Apr 23 22:56:57 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
3885 * apps/JAWS/client/*: Fixed warnings due to size_t
3886 * apps/JAWS/client/Blob_Handler: Fixed error by passing
3887 pointer to base class ACE_Blob_Handler instead
3888 of pointing to ACE_Blob_Reader, in call to connect
3890 Wed Apr 23 20:57:35 1997 James C Hu <jxh@polka.cs.wustl.edu>
3892 * ace/OS.i and ace/OS.h: added methods for getpwnam and
3893 getpwnam_r, with hooks for NT.
3895 * ace/config-irix6.2.*: added ACE_LACKS_PWD_REENTRANT_FUNCTIONS.
3897 Wed Apr 23 14:27:48 1997 David L. Levine <levine@cs.wustl.edu>
3899 * ace/Timer_Queue.cpp (ACE_Timer_Queue ctor): reordered initializers
3900 to match declaration order.
3902 * tests/Process_Strategy_Test.cpp: added ACE_Singleton template
3903 specialization. In function client (), null terminated "buf"
3904 before call to ACE_OS::strrchr () to avoid uninitialized memory
3905 read. Also, fixed typo in test name (argument to ACE_START_TEST).
3907 * examples/Service_Configurator/Misc/Timer_Service.cpp (init): changed
3908 type of loop index to int to avoid signed/unsigned comparison, and
3909 initialized "interval" so that it has a value even if one isn't
3910 specified on the command line.
3912 Wed Apr 23 10:52:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
3914 * ace/OS.cpp (thr_create): Removed errant preprocessor conditional
3915 for determining the scheduling priority. Thanks to Thilo Kielmann
3916 <kielmann@informatik.uni-siegen.de> for reporting this.
3918 Wed Apr 23 09:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
3920 * tests/Process_Strategy_Test.cpp: Finished updating this program
3921 so that it is an automated test.
3923 * ace/Acceptor.h: Moved get_handle() into the public portion of
3926 * include/makeinclude/platform_irix6.2_sgic++.GNU (SOBUILD): There
3927 was an extra @ in $@@. Thanks to Amos Shapira <amos@dsi.co.il>
3930 * apps/JAWS/client/Blob[_Handler].cpp: Added casts for free ((void
3931 *) filename_);. Thanks to Amos Shapira <amos@dsi.co.il> for
3934 * apps/JAWS/server/HTTP_Helpers.h (class HTTP_Status_Code):
3935 Removed an extraneous const * from the definition of instance().
3936 Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
3938 Wed Apr 23 03:15:11 1997 James C Hu <jxh@polka.cs.wustl.edu>
3940 * apps/JAWS/server/README: Updated to add some clarity and more
3943 Tue Apr 22 20:17:00 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
3945 * ace/Synch.cpp: Added a new method called open() to ACE_File_Lock
3946 so that we don't have to initialize it solely in the
3949 * tests/Process_Strategy_Test.cpp: Added new test code that
3950 exercises the ACE_Process_Strategy, ACE_Thread_Strategy, and
3951 ACE_Reactive_Strategy classes.
3953 * ace/Strategies_T: Added a new class called
3954 ACE_Reactive_Strategy, which inherits from
3955 ACE_Concurrency_Strategy and registers new Svc_Handlers with the
3958 * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added a check for
3959 failed open() methods and call ACE_ERROR.
3961 * tests/Map_Manager_Test.cpp: Added a template specialization for
3962 the ACE_Hash_Map_Manager::hash() method, which is enabled if the
3963 compiler supports template specializations.
3965 * ace/Hash_Map_Manager.h (pool): Moved the ext_id.hash() call into
3966 a separate method so that we can perform template specialization
3969 * ace/README: Added a new #define called
3970 ACE_HAS_TEMPLATE_SPECIALIZATION so that we can work around funky
3971 compilers that don't support this advanced template feature.
3973 * ace: Added Nanbor Wang's port to FreeBSD. The port is done
3974 at FreeBSD 3.0-current as of 2/9/97, which is the
3975 latest stable system before Lite2 merge. Since the merge is
3976 current under testing and changes are introduced in a daily
3977 basis, I don't recommend using -current after the date. You
3978 can specified the date in your "supfile", run CVSup to get the entire
3979 source tree and do a 'make world' to update (or reverse) your
3982 Pthread library is provided by John Birrell. There is a
3983 bug fix at mid April so you may want to CVSup the latest libc_r
3984 library and re-make the pthreaded library.
3986 A shared library must be name as lib<name>.so.<version
3987 number> (e.g. libACE.4.1.0). I would recommend adding a
3988 post-compile hook in the Makefile so we FreeBSDers can
3989 rename the shared library to it's proper name with correct
3990 major and minor version number attached. (which is a trick
3991 BSD library makefiles use.)
3993 * examples/OS/Process/process.cpp (main): Replaced the use of
3994 "/bin/cat" with "cat" since we are now using execvp(). Thanks
3995 to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
3997 * ace/Process.cpp (start): Changed the use of execv() to execvp()
3998 in order to avoid having to pass in the full pathname.
4000 * ace/OS.i (sigwait): Added an #ifdef for FreeBSD so that we
4001 return ACE_NOTSUP_RETURN(-1) for ACE_OS::sigwait(). Thanks to
4002 Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
4004 Tue Apr 22 17:46:30 1997 <harrison@samba.cs.wustl.edu>
4006 * Process.cpp (start): We must pass in 0 instead of "" to
4007 CreateProcess for the current working directory.
4009 Tue Apr 22 01:38:14 1997 <irfan@TWOSTEP>
4011 * ace/Timer_Queue: Added ACE_Upcall_Strategy as a parameter to the
4012 constructor. <expire> will call <upcall_strategy->upcall> if
4013 <upcall_strategy> is not 0. Else it will call <handle_timeout>
4014 on the <Event_Handler>. Thus ACE_Upcall_Strategy becomes a
4015 vehicle for extending the behavior of ACE_Timer_Queue wrt the
4016 upcall (callback) *without subclassing*. Hence, it's an example
4017 of the Bridge/Strategy patterns.
4019 This also affected ACE_Timer_List and ACE_Timer_Heap
4021 * ace/Strategies: Added ACE_Upcall_Strategy.
4023 * ace/Proactor: Added timing support to the <handle_event> calls.
4025 * ace/Asynch_IO: ACE_Handler now supports handle_timeout.
4027 * ace/Proactor: Added timer support for the new Proactor. This
4028 new scheme allows any of the threads in the "thread pool"
4029 waiting on the completion port of the Proactor to execute the
4030 callback routine of the handler.
4032 The implementation included adding ACE_Proactor_Timer_Handler
4033 class that has a thread that will wait on the earliest time in a
4034 timer queue and an event. When a timer expires, the thread will
4035 post a completion event on the port and go back to waiting on
4036 the timer queue and event. If the event is signaled, the thread
4037 will refresh the time it is currently waiting on (in case the
4038 earliest time has changed).
4040 The ACE_Proactor::Asynch_Timer class is posted to the completion
4041 port when a timer expires. When the <complete> method of this
4042 object is called, the <handler>'s handle_timeout method will be
4045 * examples/Reactor/Proactor/test_timeout: This example illustrates
4046 the new timer features in the Proactor
4048 * examples/Reactor/Proactor/test_proactor.{mdp,mak}: Added new
4051 Mon Apr 21 18:14:32 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
4053 * ace/config-win32-common.h: Added checks around _AFXDLL before
4054 defining it. Thanks to Bruce Meyer <bmeyer1@gte.net> for
4057 Mon Apr 21 11:31:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
4059 * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
4060 Removed some unnecessary explicit template instantiations.
4062 * examples/Threads/barrier1.cpp (main): Explicitly converted
4065 Sun Apr 20 23:08:37 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
4067 * ace/{Local,Remote}_Tokens.h: Added a private declarations of the
4068 copy constructor and assignment operator for classes that
4069 inherit from ACE_TSS. This is necessary since the compiler will
4070 auto generate these two operations that will end up using the
4071 non-existent copy constructor and assignment operator from the
4072 TSS class and cause linker errors.
4074 Sun Apr 20 20:47:34 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
4076 * apps/JAWS/client: Reworked the ACE_Blob* classes to work
4077 with the new Connector behavior. Added README for this
4078 directory. Added comments.
4080 * apps/JAWS/stress-testing: Added README file
4082 Sun Apr 20 13:11:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
4084 * apps/Makefile: By default, we now compile JAWS along with the
4085 rest of ACE. I've also added some README files that explain
4086 what JAWS is all about.
4088 * examples/Service_Configurator/Misc/Timer_Service: Improved the
4089 Timer_Service test so that it makes more sense and is better
4092 Sat Apr 19 11:56:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
4094 * include/makeinclude: Removed the platform_irix6.2_sgiCC.GNU
4095 from the release. Thanks to Torbjorn Lindgren
4096 <tl@funcom.no> for these fixes.
4098 * include/makeinclude/platform_irix6.2_sgic++.GNU: Updated the SGI
4099 C++ platform config file. Thanks to Torbjorn Lindgren
4100 <tl@funcom.no> for these fixes.
4102 * ace/Log_Msg.cpp (log_hexdump): The char * arguments should be
4103 const char *'s. Thanks to Matthias Kerkhoff
4104 <make@cs.tu-berlin.de> for reporting this.
4106 Sat Apr 19 18:52:44 1997 David L. Levine <levine@cs.wustl.edu>
4108 * (format_hexdump): changed type of first arg to const char *
4109 for compatibility with Log_Msg::log_hexdump ().
4111 Thu Apr 17 08:25:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
4113 * ace/Memory_Pool.h: Fixed a couple of typos in Memory_Pool
4114 classes. Thanks to Neil B. Cohen <nbc@metsci.com> for reporting
4117 * netsvcs/lib/Name_Handler.h: Arrgh, there was still one more
4118 missing #include that I forgot to move into the *.h file.
4119 Thanks to David Levine for noticing this.
4121 * ace/Synch.cpp (wait): There was a bug in
4122 ACE_Condition::wait(MUTEX& mutex, const ACE_Time_Value
4123 *abstime.) Basically when abstime is zero, it ignores the
4124 parameter "mutex" that has been passed to it and instead goes on
4125 to call "ACE_Condition<MUTEX>::wait()" which uses "this->mutex_"
4126 as the mutex to be released and not the mutex that the caller
4127 has given. The fix is to change the call "this->wait()" in the
4130 return ACE_OS::cond_wait (&this->cond_, &mutex_.lock_);
4132 Thanks to Ashish Singhai <Ashish.Singhai@ACM.ORG> for reporting
4135 Thu Apr 17 16:33:21 1997 David L. Levine <levine@cs.wustl.edu>
4137 * ace/Memory_Pool.cpp: fixed typos in ACE_MMAP_Memory_Pool_Options
4138 constructor declaration and initializer list. In init_acquire,
4139 added cast of minimum_bytes_ to size_t to avoid signed/unsigned
4142 * include/makeinclude/{platform*,wrapper_macros}.GNU:
4143 moved -g out of wrapper_macros.GNU and into each platform
4144 file so that -gstabs can be used on SCO. Thanks to
4145 Ganesh Pai <gpai@voicetek.com> for reporting that problem.
4147 (The real change was getting rid of the CFLAGS += DCFLAGS
4148 default. We could have left DCFLAGS=-g in wrapper_macros.GNU
4149 and overridden for SCO. But the way I changed things, the
4150 C/CFLAGS pieces are together in each platform file, so they're
4153 Wed Apr 16 17:05:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4155 * ace/Memory_Pool.cpp (acquire): Added code to enable a minimum
4156 bytes field with the Shared_Memory_Pool. Thanks to Fred LaBar
4157 <flabar@fallschurch.esys.com> for these enhancements.
4159 * tests/Process_Strategy_Test.cpp: Only compile this test if
4160 ACE_LACKS_EXEC is *not* defined since ACE_Process_Strategy
4161 requires fork(). Thanks to Irfan for pointing this out!
4163 * netsvcs/lib: Fixed a couple o' typos that had escaped detection
4164 last night. Thanks to David Levine for reporting this.
4166 * ace/Synch[_T].h: removed the use of {} rather than ; for
4167 the private copy constructors and assignment operators.
4168 Hopefully this won't break code on older C++ compilers. Thanks
4169 to Berni Merkle <merkle@io.freinet.de> for suggesting this.
4171 * Added a whole slew of minor fixes for unused variables in
4172 the tests and examples. Thanks to Torbjorn Lindgren
4173 <tl@funcom.no> for reporing these.
4175 * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): The order of
4178 this->handles_.mask_.fds_bits[this->index_] == 0
4179 && this->num_ < ACE_Handle_Set::MAXSIZE
4181 was backwards. It should be:
4183 this->index_ < ACE_Handle_Set::NUM_WORDS
4184 && this->handles_.mask_.fds_bits[this->index_] == 0
4186 Thanks to Michael Newton <michaeln@in.ot.com.au> for
4189 Wed Apr 16 21:34:53 1997 David L. Levine <levine@cs.wustl.edu>
4191 * tests/Process_Strategy_Test.cpp: added template specializations.
4193 Wed Apr 16 15:46:58 1997 <irfan@TWOSTEP>
4195 * tests/Process_Strategy_Test: Added test to batch files and
4198 * tests/Process_Strategy_Test.cpp (open): Added UNICODE support.
4200 * ace/OS.h: Added SIGCHLD to Win32 section.
4202 * ace/config-win32-common.h: UNICODE should not be automatically
4203 defined if ACE_HAS_UNICODE is defined. ACE_HAS_UNICODE signifies
4204 that the OS has UNICODE support. It does not mean that your code
4205 must be UNICODE. UNICODE must be defined at the project level.
4207 Wed Apr 16 16:55:47 1997 David L. Levine <levine@cs.wustl.edu>
4209 * ace/SString.{h,cpp}: Modified CString to not allocate 1 byte for
4210 a 0 length string. Instead, set the internal representation to
4211 the address of static class character null_string_.
4213 Wed Apr 16 11:47:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
4215 * ace/Map_Manager.cpp (free_search_structure): Added the loop
4216 variable back in that must have been inadvertently deleted in the
4219 Wed Apr 16 09:35:39 1997 David L. Levine <levine@cs.wustl.edu>
4221 * ace/Map_Manager.cpp (free_search_structure): changed type of
4222 loop index to size_t to avoid signed/unsigned mismatch.
4224 Wed Apr 16 04:07:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4226 * ace/Strategies_T: Widened the constructor interface for
4227 ACE_Process_Strategy based on the feedback I got from
4228 implementing the Process_Strategy_Test.cpp program.
4230 * tests/Process_Strategy_Test.cpp: Added an interesting new test
4231 that illustrates the use of the ACE_Process_Strategy and the
4232 ACE_File_Lock. To exercise this program, you can telnet to it
4233 and type "read" and "inc" to query and change the count of
4234 the numbers in the file, respectively.
4236 * ace/Connector.cpp (create_AST): I fixed a couple of things
4239 - In create_AST, it needs to save and restore errno, else it
4240 gets wiped on Win32 and other platforms.
4242 - On Win32 when a non-blocking connect completes and handle_output is
4243 called, it tries to get the peer address. If done too quickly, it
4244 fails. I put in a Sleep(0) call. I think this is not a great
4245 solution, but I don't have a better one yet.
4247 Thanks to Steve Huston <shuston@riverace.com> for fixing
4250 Tue Apr 15 17:09:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4252 * ace/SOCK_Stream.cpp (close): Removed the call to close_writer()
4253 on UNIX since that doesn't do the correct thing in many
4254 cases since it causes a protocol transmission which isn't
4255 what we want if we're using fork().
4257 * ace/Strategies_T.cpp (activate_svc_handler): Added a call to
4258 svc_handler->destroy() in the parent since we don't need it and
4259 we're leaking descriptors and memory otherwise... Thanks to
4260 Kevin Boyle <kboyle@sanwafp.com> for reporting this.
4262 * ace/OS.i (thr_sigsetmask): Replaced the use of
4263 PTHREADS_1003_DOT_1C with ACE_HAS_PTHREAD_SIGMASK. Thanks to
4264 Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
4266 * ace: Changed all uses of ACE_HAS_PTHREADS_XAVIER to
4267 ACE_HAS_PTHREAD_SIGMASK, which is more descriptive. Thanks to
4268 Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
4270 * ace/config-aix-4.2.x.h: Added #define ACE_LACKS_RWLOCK_T to make
4271 things compile with AIX 4.2. Thanks to Jeremy Buch
4272 <davinci@nortel.ca> for reporting this.
4274 * ace/XtReactor.cpp (register_handler_i): Added "[]" to delete
4275 this->ids_ since it is an array. Thanks to Jean-Marc Strauss
4276 <strauss@club-internet.fr> for reporting this.
4278 * netsvcs/lib: Moved all the class definitions into the *.h files
4279 to avoid complaints from the IBM C++ compiler.
4281 * ace/OS.h: Added a #define for WNOHANG since this is missing on
4282 NT. Thanks to Brian Mendel <bmendel@mdc.com> for reporting
4285 * examples/Connection/non_blocking/test_sock_connector.cpp: Added
4286 a typedef for ACE_RW_Mutex so that the code compiles on non-MT
4287 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4290 * examples/Connection/non_blocking/test_tli_connector.cpp: Added a
4291 typedef for ACE_RW_Mutex so that the code compiles on non-MT
4292 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4295 * examples/Connection/misc/test_upipe.cpp: Added a typedef for
4296 ACE_RW_Mutex so that the code compiles on non-MT platforms.
4297 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4299 * performance-tests/Synch-Benchmarks/Options.cpp: Added a #ifdef
4300 for ACE_Thread_Mutex so that the code compiles on non-MT
4301 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4304 * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added a
4305 typedef for ACE_RW_Mutex so that the code compiles on non-MT
4306 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4309 * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: Added a
4310 typedef for ACE_RW_Mutex so that the code compiles on non-MT
4311 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4314 * examples/ASX/Event_Server/Event_Server/Options.cpp
4315 (print_results): Although rusage struct is defined on SCO, there
4316 is no getrusage(), rusage is used only by wait()
4317 etc. internally. Therefore, we had to move some #ifdefs around.
4318 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4320 * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added a
4321 typedef for ACE_RW_Mutex so that the code compiles on non-MT
4322 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4325 * tests/Conn_Test.cpp: Added a typedef for ACE_RW_Mutex so that
4326 the code compiles on non-MT platforms. Thanks to Ganesh Pai
4327 <gpai@voicetek.com> for reporting this.
4329 * tests/SPIPE_Test.cpp (main): Removed the VXWORKS arm of the
4330 #ifdef, which is not correct since this stuff only works if
4331 we're working with a version of VxWorks that has STREAM pipes.
4333 * include/makeinclude/platform_sco5.0.0-nothread.GNU: Changed
4335 LIBS = -lsocket -lnsl -ldl
4339 LIBS += -lsocket -lnsl -ldl
4341 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4343 * netsvcs/lib/Client_Logging_Handler.cpp: Added a typedef for
4344 ACE_RW_Mutex so that the code compiles on non-MT platforms.
4345 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4347 * netsvcs/lib/TS_Clerk_Handler.cpp: Added a typedef for
4348 ACE_RW_Mutex so that the code compiles on non-MT platforms.
4349 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4351 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added a
4352 typedef for ACE_RW_Mutex so that the code compiles on non-MT
4353 platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
4356 Tue Apr 15 23:16:43 1997 <harrison@samba.cs.wustl.edu>
4358 * ace/[Hash_]Map_Manager.cpp: The [Hash_]Map_Manager now
4359 explicitly calls the destructors of Map_Entry objects before
4360 freeing up the space. Not sure why we were not doing this
4363 Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
4365 * examples/Logger: Added MSVC++ makefile to Acceptor-server
4368 Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
4370 * apps/JAWS/server/IO.cpp: Added a template instance for
4371 ACE_Singleton so it would link using GCC. Removed GCC
4374 * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
4375 LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task, ACE_Message_Queue,
4376 ACE_Module so it would link using GCC. Removed GCC warnings.
4378 * apps/JAWS/server/HTTP_Server_T.cpp: Removed template instance of
4379 LOCK_SOCK_Acceptor, since it was not really being compiled.
4381 Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
4383 * apps/JAWS/server/IO.cpp: Added a template instance for
4384 ACE_Singleton so it would link using GCC. Removed GCC
4387 * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
4388 LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task,
4389 ACE_Message_Queue, ACE_Module so it would link using GCC.
4390 Removed GCC warnings.
4392 * apps/JAWS/server/HTTP_Server_T.cpp: Removed template
4393 instance of LOCK_SOCK_Acceptor, since it was not really
4396 * apps/JAWS/server/HTTP_Handler.cpp: Removed GCC warnings.
4398 Tue Apr 15 13:01:13 1997 David L. Levine <levine@cs.wustl.edu>
4400 * ace/Token_Request_Reply.cpp (ctor): added initialization of
4401 transfer_.data_ to avoid unitialized memory read.
4403 * tests/test_config.h: removed "static" qualifier from
4404 randomize () to avoid warning from g++ when it's not called
4407 * examples/IPC_SAP/SPIPE_SAP/server.cpp (main): moved
4408 declaration of local variable "handle" up before its first
4411 Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
4413 * examples/Connection/blocking/Makefile: Removed the Makefile
4414 for this test. This example is only suppose to work on WIN32
4415 and therefore the Makefile is not necessary. I have replace
4416 this file with a MSVC++ make file.
4418 Mon Apr 14 23:08:27 1997 <irfan@TWOSTEP>
4420 * INSTALL: Updated install files for Win32.
4422 * ace/SPIPE_Stream: Changed the use of ACE::send_n to ACE::write_n
4423 and ACE::recv_n to ACE::read_n.
4425 * ace/OS.h (WNOHANG): Added WNOHANG to OS.h for Win32.
4427 * ace/OS.i (getpgid): Fixed extra return.
4429 * examples/Connection/blocking/SPIPE-acceptor: Updated the code to
4430 use the new Proactor and the new asynchronous IO.
4432 Mon Apr 14 21:32:24 1997 David L. Levine <levine@cs.wustl.edu>
4434 * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
4435 ACE_OS::sprintf instead of sprintf.
4437 * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
4438 (svc): declare "t" as time_t instead of long.
4440 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
4441 reporting both of these.
4443 Mon Apr 14 00:02:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4445 * ace/OS.i (getpgid): Removed the extraneous return in front of
4446 ACE_NOTSUP_RETURN. Thanks to Mike Bernat <sagmb@sagus.com> for
4449 * ace/Process.cpp: Replaced the use of ACE_OS::fork(void) with
4450 ACE_OS::fork(const char *) so that we can pass in the name of
4451 the process we're exec'ing.
4453 * examples/Threads/process_manager.cpp: Added a test program that
4454 exercises the features of the new ACE_Process_Manager.
4456 * ace/Process_Manager: Finished a rudimentary implementation of
4457 ACE_Process_Manager. There's still plenty of work to be done on
4460 * ace/Thread_Manager.cpp (dump): Added dump() methods for
4461 ACE_Thread_Descriptor and ACE_Thread_Manager.
4463 Sun Apr 13 11:40:26 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4465 * ace/OS: Added a getpgid() call to ACE_OS.
4467 * ace/Thread_Manager: Changed the 'int n' of spawn_n() to size_t n
4468 since this is more appropriate because we can't spawn a negative
4469 number of threads...
4471 * ace/Thread_Manager.cpp (close): Make sure to lock the calls to
4472 close() in case things get amiss.
4474 * ace/Process.cpp (start): Updated ACE_Process::start() to that it
4475 doesn't try to exec() a program if argv == 0. This allows us to
4476 use ACE_Process to fork() a process without exec'ing.
4478 * tests/Timer_Queue_Test.cpp (randomize_array): Added a new
4479 "randomization" test that determines the performance of randomly
4480 canceling items in the array. Thanks to Darrell Brunsch
4481 <brunsch@cs.wustl.edu> for this enhancement.
4483 * tests/test_config.h: Moved the randomize() function from
4484 Naming_Test.cpp to test_config.h so that we can use it in other
4485 tests (e.g., the new Timer_Queue_Test.cpp that Darrell is
4488 * ace/OS: Added a new #define called ACE_HAS_NONCONST_MSGSND which
4489 can be used for platforms (e.g., SCO) that don't have a const
4490 parameter for msgsend(). Thanks to Arturo Montes
4491 <mitosys@colomsat.net.co> for reporting this.
4493 * ace/config-sco-5.0.0-mit-pthread.h: Added some fixes to make
4494 this work on SCO. Thanks to Arturo Montes
4495 <mitosys@colomsat.net.co> for reporting this.
4497 * ace/OS.i (cond_timedwait): There is a *small* chance for a
4498 context switch before ACE_OS::cond_timedwait() is reached. In
4499 this case, the current time *may* advance by some milliseconds.
4500 The code in ACE_OS::cond_timedwait() then converts the given
4501 absolute time to a relative time. In the described situation
4502 this will be a very, very long t ime (0xfffffffn). Therefore, I
4503 added a check to avoid the "negative timespan" case. Thanks to
4504 Matthias Kerkhoff <make@cs.tu-berlin.de> for suggesting this.
4506 * ace/Set: Moved all the size() methods out of the *.i file and
4507 into the *.cpp file to avoid problems with quirky compilers
4508 (e.g., SGI) that can't handle this. Thanks to Torbjorn Lindgren
4509 <tl@funcom.no> for pointing this out.
4511 * examples/Threads/process_semaphore.cpp (main): Removed a stray
4512 ^M that was causing the SGI C++ compiler some grief. Thanks to
4513 Torbjorn Lindgren <tl@funcom.no> for pointing this out.
4515 * ace/OS.i (gettimeofday): Rearranged the code a bit to return
4516 errors correctly if they occur (which should be *very*
4517 unlikely). Thanks to Torbjorn Lindgren <tl@funcom.no> for
4520 * netsvcs/lib/Server_Logging_Handler.cpp: Replaced the use of
4521 ACE_TLI* with LOGGING_PEER*. Thanks to Tom Wright
4522 <twright@gem-net.demon.co.uk> for reporting this.
4524 * ace/Connector.cpp: Made sure to initialize all of the instance
4525 variables for the ACE_Strategy_Connector and ACE_Connector.
4526 Thanks to David Levine for pointing this out.
4528 * ace/Synch.h: Changed protected: to private: so that we can
4529 ensure that we never copy classes like ACE_File_Lock, etc.
4530 Thanks to Berni Merkle <merkle@io.freinet.de> for reporting
4533 * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Added
4534 the print_stats() call back into the test since Sandro's fixes
4535 should now support this.
4537 * ace/Malloc[_T]: Added patches to enable ACE_Allocator's to print
4538 malloc statistics. Thanks to Sandro Doro
4539 <alex@aureus.sublink.org> for these fixes.
4541 Sat Apr 12 20:42:11 1997 David L. Levine <levine@cs.wustl.edu>
4543 * tests/Priority_Task_Test.cpp (open): only use THR_SCHED_FIFO
4544 if it is defined. (It isn't on Solaris without PTHREADS.)
4546 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
4547 (make_svc_handler): added return statement.
4549 Sat Apr 12 11:53:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
4551 * examples/ASX/Event_Server/Transceiver/transceiver.cpp (main):
4552 The first argument to connect () is now a SVC_HANDLER *&.
4553 Therefore, we can no longer allows us to pass the address of a
4554 SVC_HANDLER on the stack (or in the data segment).
4555 Fortunately, the fix is easy, as shown below:
4557 Event_Transceiver transceiver, *tp = &transceiver;
4559 connector.connect (tp, ACE_INET_Addr (port_number, host_name));
4561 Thanks to David Levine for reporting this problem.
4563 Fri Apr 11 15:14:59 1997 David L. Levine <levine@cs.wustl.edu>
4565 * tests/Conn_Test.cpp: moved declaration of "result" out of
4566 loop because it's used after the loop. Thanks to
4567 Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
4568 reporting this. Also, removed a few unnecessary template
4571 * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: fixed template
4572 specializations for no-thread platforms. Thanks to Ganesh Pai
4573 <gpai@voicetek.com> for reporting this.
4575 * performance-tests/Misc/context_switch_time.cpp (main):
4576 removed call to ACE_High_Res_Timer::supported ().
4578 Fri Apr 11 14:31:42 1997 Chris Cleeland <cleeland@cs.wustl.edu>
4580 * tests/Conn_Test.cpp: Added several explicit template
4583 Fri Apr 11 13:49:04 1997 David L. Levine <levine@cs.wustl.edu>
4585 * ace/OS.h: VxWorks changes only: added taskHookLib.h. Thanks
4586 to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
4587 that. Also rearranged the VxWorks #includes and such a bit.
4589 * ace/Log_Msg.cpp (atexit): VxWorks changes only: added cast
4590 of spare1 to ACE_Log_Msg *. Thanks to Dave Mayerhoefer
4591 <mayerhoefer@svappl36.mdc.com> for reporting that. Also,
4592 in exists () and instance (), replaced double indirection
4593 of the ACE_Log_Msg instance with indirection through a pointer
4596 * ace/High_Res_Timer.{h,i}: removed supported () because
4597 ACE_OS::gettimeofday () is used if a high-res timer isn't available.
4599 * ace/OS.i (thr_sigsetmask),config-sunos5.4-*.h: swapped order of
4600 #ifdefs to that ACE_LACKS_PTHREAD_THR_SIGSETMASK is checked before
4601 ACE_HAS_STHREADS. Added that #define to all SunOS 5.4 configs.
4602 Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
4604 * ace/Token_Request_Reply.cpp (ctor): added a initializations to 0
4605 of requeue_position_, notify_, and arg_. With this change, all
4606 of the ACE tests run without any Purify access anomalies!
4607 (There are still some memory leaks, though.)
4609 * include/makeinclude/rules.local.GNU: added -DMAKEDEPEND to
4610 invocation of g++dep. This allows users to get proper
4611 dependencies if they have conditional #includes in their code.
4612 They can added #if defined (MAKEDEPEND) as necessary to make
4613 sure that all headers are seen by g++dep.
4615 Fri Apr 11 10:46:56 1997 Chris Cleeland <cleeland@cs.wustl.edu>
4617 * config-linux*.h: Added ACE_HAS_IP_MULTICAST as the default for
4618 all Linux configurations. If you're a 1.x user, or you didn't
4619 config that into your 2.x kernel, you'll have to remove this from
4620 your version of the file.
4622 Thu Apr 10 00:34:10 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4624 * examples/Logger/simple-server/Logging_Acceptor.cpp
4625 (handle_input): We need to call svc_handler->close() if accept()
4626 or open() fails. Thanks to Ganesh Pai <gpai@voicetek.com> for
4629 * ace/Service_Config.cpp (close): Moved the call to
4630 ACE_Service_Config::close_singletons() to outside the check for
4631 ACE_Service_Config::svc_rep_ since the Singletons can be used
4632 independently of the services. Thanks to Matthias Kerkhoff
4633 <make@cs.tu-berlin.de> for suggesting this.
4635 Wed Apr 9 21:11:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4637 * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons
4638 added bugs to my code that were causing segfaults when signals
4639 shutdown the gateway. This is now fixed.
4641 * apps/Gateway/Gateway/Proxy_Handler.h: Changed ACE_Event_Channel
4642 & to ACE_Event_Channel * to keep the compiler happy.
4644 * examples/Connection/non_blocking/CPP-connector.h: Added a
4645 do-nothing default constructor to keep ACE_Connector happy.
4647 * examples/Connection/misc/test_upipe.cpp: Added a do-nothing
4648 default constructor to keep ACE_Connector happy.
4650 * examples/Connection/blocking/SPIPE-connector.h: Added a
4651 do-nothing default constructor to keep ACE_Connector happy.
4653 * apps/Gateway/Gateway/Proxy_Handler: Added a do-nothing default
4654 constructor to keep ACE_Connector happy.
4656 * netsvcs/lib: Added some default arguments to
4657 TS_Clerk_Handler.cpp and Client_Logger_Handler.cpp to keep the
4658 compiler from complaining about the new ACE_Connector features.
4659 Thanks to David Levine for reporting this.
4661 * ace/Timer_Heap.cpp (reheap_down): Fixed a *very* subtle bug in
4662 reheap_down() where parent was starting off at 0 whereas it
4663 should have been starting off at child_index / 2.
4665 * examples/Logger/simple-server/Logging_Handler: Removed the use
4666 of the operator ACE_SOCK_Stream &() and replaced it with the
4667 more intuitive peer() approach used in ACE_Svc_Handler et al.
4668 Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
4670 * ace: Added a bunch of changes to improve ACE support on SCO 5.0.
4671 Thanks to Ganesh Pai <gpai@voicetek.com> for these fixes.
4673 * tests/Conn_Test.cpp: Completely reworked this test so that it
4674 illustrates how to use the ACE_Strategy_Connector, which is
4675 customized with a special Caching_Connect_Strategy that recycles
4678 * ace/Connector: Finished implementing the new
4679 ACE_Strategy_Connector. This is similar in design to the
4680 ACE_Strategy_Acceptor.
4682 * ace: Changed the signature of all the make_svc_handler() methods
4683 so that they return int (rather than SVC_HANDLER *) and they
4684 pass back a SVC_HANDLER * by reference. This makes it possible
4685 to totally control the creation of svc handlers (which is useful
4686 for the new ACE_Strategy_Connector).
4688 * ace/Connector.cpp: Factored out the active_svc_handler() call
4689 from the connect_svc_handler() method into the connect() method
4690 so that it would behave correctly as a Template Method and
4693 * ace/Connector: Removed the explicit use of the Reactor data
4694 member from the ACE_Connector since it's inherited from the
4697 * ace/Log_Msg.cpp: The MVS compiler doesn't like the call to
4698 atexit() in ACE_Log_Msg::instance() because atexit() requires an
4699 a function pointer of type extern "C" for its parameter. I've
4700 fixed this via an adapter. Thanks to Chuck Gehr
4701 <gehr@sweng.stortek.com> for reporting this.
4703 * ace/Strategies_T: Added a new ACE_Connect_Strategy that
4704 complements the ACE_Strategy_Connector in the same manner that
4705 the ACE_Accept_Strategy complements the ACE_Strategy_Acceptor.
4707 * ace/Connector.h: The destructor for ACE_Connector should have
4708 been virtual. Now it is.
4710 * ace/Connector: Added a new factory method called
4711 make_svc_handler(). This behaves similiarly to the
4712 ACE_Acceptor::make_svc_handler(). However, for the
4713 ACE_Connector we only use this when the SVC_HANDLER * is NULL.
4715 * ace/Connector: Changed the signature for connect() to take a &
4716 to a SVC_HANDLER * in anticipation of our new
4717 ACE_Strategy_Connector. This new connector will make it easy to
4718 implement cached connections.
4720 * ace/config-win32-common.h: Added a new #include for <mswsock.h>,
4721 which contains the declarations for TransmitFile() data
4722 structures. They are in WINSOCK.H if you do not use
4723 ACE_HAS_WINSOCK2. Thanks to Norbert Rapp
4724 <norbert.rapp@nexus-informatics.de> for reporting this.
4726 * ace/OS.i: Fixed a typo in the new condition variable
4727 implementation for Win32. Thanks to Norbert Rapp
4728 <norbert.rapp@nexus-informatics.de> for reporting this.
4730 Wed Apr 09 22:06:23 1997 <harrison@samba.cs.wustl.edu>
4732 * Memory_Pool.h: Modified ACE_MMAP_Memory_Pool and
4733 ACE_MMAP_Memory_Pool_Options to include the new guess_on_fault
4734 option. This is only for platforms that can not report which
4735 address caused a segmentation fault (via signal or exception).
4736 When guess_on_fault is set (via ACE_MMAP_Memory_Pool_Options),
4737 ACE_MMAP_Memory_Pool::handle_signal calls
4738 ACE_MMAP_Memory_Pool::remap "guessing" that the segmentation
4739 fault was caused by an access to memory not yet mapped.
4741 Wed Apr 09 16:46:16 1997 David L. Levine <levine@cs.wustl.edu>
4743 * ace/OS.{h,i}: fixed readPPCTimeBase declaration and return
4744 value (for now: it really needs to return a 64 bit quantity).
4745 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
4748 Wed Apr 9 03:12:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
4750 * ace/config-win32-common.h: Defining _WIN32_WINNT as 0x0400
4751 implies ACE_HAS_WINSOCK2.
4753 * ace/Asynch_IO: The implementation of ACE_Asynch_Transmit_File
4754 and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is
4755 defined or you are on WinNT 4.0 or higher. Therefore, added
4756 appropriate #defines. Thanks to Matthias Kerkhoff
4757 <make@cs.tu-berlin.de> for suggesting this.
4759 Tue Apr 8 22:45:28 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
4761 * java/src/SOCKStream.java (SOCKStream): Made two small changes to
4762 the two send(). Instead of doing a println, I now do a
4763 print. This was really a bug!
4765 Tue Apr 08 22:08:12 1997 David L. Levine <levine@cs.wustl.edu>
4767 * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed
4768 "rm -f $@" from AR command so that archive won't be removed
4769 during incremental updates. Thanks to Chuck Gehr
4770 <gehr@sweng.stortek.com> for reporting this.
4772 Tue Apr 8 00:04:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4774 * ace/Task_T.cpp: Added a hack to work around the new weird HP/UX
4775 aCC template semantics. Thanks to Neil B. Cohen
4776 <nbc@metsci.com> for reporting this.
4778 * ace/config-hpux-10.x[-g++].h: Added #define
4779 ACE_HAS_CLOCK_GETTIME. Thanks to Neil B. Cohen <nbc@metsci.com>
4782 * ace/config-hpux-10.x[-g++].h: Added ACE_HAS_IP_MULTICAST and removed
4783 ACE_LACKS_STRRECVFD. Thanks to Neil B. Cohen <nbc@metsci.com>
4786 * ace/config-hpux-10.x.h: Apparently some HP/UX 10.x C++ compilers
4787 don't support volatile, so I #defined it away as a macro.
4788 Thanks to Neil B. Cohen <nbc@metsci.com> for reporting this.
4790 * ace/Log_Msg.cpp: Put a #if defined (ACE_MT_SAFE) around the
4791 entire Log_Msg destructor. Thanks to Neil B. Cohen
4792 <nbc@metsci.com> for reporting this.
4794 * ace/config-hpux-10.x[-g++].h: Added #define ACE_HAS_STREAMS on
4795 the recommendation of Neil B. Cohen <nbc@metsci.com>.
4797 Mon Apr 07 12:08:21 1997 <harrison@samba.cs.wustl.edu>
4799 * ace/Set.cpp: For some reason, VC++ 5.0 doesn't like to have the
4800 constructors X::X(X&) and X::X(X*). We can change the X::X(X*)
4801 constructor to take in an extra argument with a default value.
4802 This seems to have sufficiently satisfied the VC++ 5.0 for the
4803 time being. There were no changes necessary to other Set.cpp
4804 code (as the extra argument has a default value).
4806 Mon Apr 07 08:05:03 1997 David L. Levine <levine@cs.wustl.edu>
4808 * ace/config-win32.h: enabled ACE_HAS_UNICODE by default.
4809 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
4812 * ace/config-sunos5.4-g++.h: enabled ACE_HAS_BROKEN_RANDR and
4813 disabled ACE_HAS_SVR4_SIGNAL_T. Thanks to Joey Zhu
4814 <joey.zhu@wcom.com> for reporting these problems and testing
4817 * ace/Proactor.h (ACE_Proactor): commented out unused arguments
4818 in non-WIN32 version.
4820 Sun Apr 06 22:51:02 1997 <irfan@TWOSTEP>
4822 * ace/Proactor: Complete rewrite of Proactor that pushes all the
4823 differences in asynchronous I/O to the edges of the framework -
4824 i.e., into the new Asynch_IO classes. This allows the Proactor
4825 to easily support new asynchronous operations.
4827 Currently, the new Proactor supports minimal functionality. In
4828 the future, we will complete this.
4830 The Proactor is used in conjunction with the new Asynch_IO
4831 classes. There is a different class for each operation. Please
4832 see Asynch_IO.h for details.
4834 There is also a new ACE_Asynch_Acceptor that uses AcceptEx.
4837 ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp.
4839 This example illustrates how the ACE_Proactor can be used to
4840 implement an application that does various asynchronous
4843 * apps/JAWS/server: Complete rewrite of JAWS. The new JAWS has
4844 support for Asynch-Thread-Pool (on WIN32), Synch-Thread-Pool,
4845 and Thread-per-Request. Different models can be configured using
4846 the svc.conf file. The server now supports both GET and PUT
4849 The HTTP_Handler class is a state based implementation of the
4850 HTTP protocol. Therefore, it can be used synchronously and
4851 asynchronously. It uses an abstract IO class to move between
4852 different HTTP protocol states. It is up to the IO class to
4853 decide on synchronous or asynchronous I/O.
4855 * apps/JAWS/client: This is an example of the implementation of
4856 BlobStreaming in ACE. This version of BlobStreaming uses HTTP as
4857 a transport protocol.
4859 Blobby :-) is a simple application written using the ACE_Blob
4860 class, which is capable of doing both file uploads and
4861 downloads. If a file is downloaded, the downloaded data is sent
4862 to standard output, so that it can be piped as necessary.
4864 * ace/Mem_Map.cpp (map_it): This method now uses ACE_OS::pwrite
4865 (if ACE_HAD_P_READ_WRITE is defined) instead of
4866 ACE_OS::lseek/ACE_OS::write to write the end-of-file byte. The
4867 old scheme does not work if the file is in OVERLAPPED mode.
4869 * ace/OS: Added pread and pwrite to the OS class (if
4870 ACE_HAD_P_READ_WRITE is defined). On Win32, these functions use
4871 the OVERLAPPED structure to specify the offset. This
4872 implementation will block until the write/read completes (even
4873 if the file is in OVERLAPPED mode).
4875 * ace/config: Added ACE_HAS_P_READ_WRITE to the following
4876 platforms that support pread() and pwrite() calls:
4878 config-sunos4-lucid3.2.h
4879 config-sunos4-sun3.x.h
4880 config-sunos4-sun4.1.4.h
4881 config-sunos4-sun4.x-orbix.h
4882 config-sunos4-sun4.x.h
4883 config-sunos5.4-centerline-2.x.h
4884 config-sunos5.4-g++.h
4885 config-sunos5.4-sunc++-4.x-orbix.h
4886 config-sunos5.4-sunc++-4.x.h
4887 config-sunos5.5-g++.h
4888 config-sunos5.5-sunc++-4.1.h
4889 config-sunos5.5-sunc++-4.x-orbix.h
4890 config-sunos5.5-sunc++-4.x.h
4891 config-sunx86-sunc++-4.x.h
4892 config-win32-common.h
4894 Sun Apr 6 14:16:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
4896 * tests/Timer_Queue_Test.cpp: Added tests to make sure that the
4897 new ACE_Timer_Queue::cancel() logic is working correctly. So
4898 far, it seems to be fine.
4900 * ace/Timer_{Heap,List}.cpp (cancel): Changed the comparison for
4901 dont_call_handle_close to be correct.
4903 * ace/OS.cpp: Deleted a useless return. Thanks to Gonzalo
4904 A. Diethelm <gonzo@ing.puc.cl> for reporting this.
4906 * ace/config-irix6.2-sgic++.h: Added the following definitions:
4908 + ACE_LACKS_PTHREAD_THR_SIGSETMASK
4909 + ACE_HAS_PTHREAD_EQUAL
4913 + ACE_HAS_TEMPLATE_TYPEDEFS
4915 Deleted the following definitions:
4917 + #define ACE_HAS_SYS_SIGLIST (Irix's compiler only has a
4918 _sys_siglist array when compiling their own internal
4921 Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for this.
4923 * ace/Process: Added new support for setting the environment
4924 variable and the current working directory. Thanks to Gonzalo
4925 A. Diethelm <gonzo@ing.puc.cl> for this enhancement.
4927 * ace/OS.h: "sys/stat.h" was being included more than once, so I
4928 fixed this. Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl>
4931 * ace/XtReactor.cpp: Added the register_handler_i() method, which
4932 just delegates to the one defined in the Reactor. This is
4933 necessary to adjust to the C++ type system rules. Thanks to
4934 Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
4936 * ace/Service_Config.cpp: Added the Double-Checked Locking
4937 Optimization pattern to all the ACE_Service_Config Singletons
4938 (e.g., thr_mgr(), reactor(), etc.) so that they behave correctly
4939 in multi-threaded programs. Thanks to Matthias Kerkhoff
4940 <make@cs.tu-berlin.de> for insisting on this.
4942 * ace/OS.i (nanosleep): If the nanosleep() system call isn't
4943 supported by the OS platform we'll just use ACE_OS::sleep(const
4944 ACE_Time_Value &) instead.
4946 * ace/Log_Msg.cpp: Changed the logic of
4947 ACE_Log_Msg_Manager::remove() so that it returns the number of
4948 remaining registered instances. When this goes to 0 we'll
4951 * ace/OS.i: Enhanced the ACE_OS::cond_[timed_]wait() methods so
4952 that they use SignalObjectAndWait() whenever possible to avoid
4953 potential problems with unfairness. See
4954 http://www.cs.wustl.edu/~schmidt/editorial-15.html for more
4955 details. Thanks to David Holmes <ltdholmes@mri.mq.edu.au> for
4956 pointing out this subtlety.
4958 Sun Apr 06 20:01:57 1997 David L. Levine <levine@cs.wustl.edu>
4960 * include/makeinclude/wrapper_macros.GNU: added "purify" and
4961 "quantify" make command options. To build Purified versions
4962 of all executables in the current direction, for example:
4964 % make clean; make purify=1
4966 These options assume that purify or quantify are in your PATH.
4968 * ace/Task.{h,cpp}: removed ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
4969 from ACE_Task_Exit declaration and ACE_Task_Exit::instance ().
4970 ACE_Task_Exit is no longer a template class, so we don't need that.
4972 * ace/Task_T.h: added missing "*/" at end of comment after #endif.
4974 * tests/IOStream.cpp (server): added check for 0 strlen of
4975 "buf" to avoid out-of-bound array reference.
4977 * ace/Svc_Conf_l.cpp, Makefile: added #define ACE_BUILD_DLL.
4978 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
4981 * ace/Set.cpp(ACE_Set_Node ctor): commented out unused arg MS_SUCKS.
4983 Sat Apr 5 14:21:29 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
4985 * java/: Changed package name from ACE to JACE across all directories.
4987 Sat Apr 5 13:12:37 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
4989 * tests/MM_Shared_Memory_Test.cpp: Removed the use of dynamic
4990 memory allocation to avoid memory leaks.
4992 * ace/Service_Config: Changed _defaults to _static_svcs since this
4993 more accurately reflects what they do.
4995 * examples/Shared_Malloc/test_malloc.cpp: Removed the
4996 print_stats() call since it doesn't work via this API. Thanks
4997 to Sandro Doro <alex@aureus.sublink.org> for reporting this.
4999 * ACE-install.sh: Tweeked the install script by changing the
5000 "gunzip; tar; gzip" sequence into "gunzip -c | tar xvf -" to
5001 speed it up a little. Thanks to Per Andersson
5002 <Per.Andersson@hfera.ericsson.se> for this fix.
5004 * examples/Threads/future1.cpp: Make sure to delete the char *name
5005 that is retrieved from the future in order to avoid a memory
5006 leak. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
5009 * examples/Threads/future1.cpp: Make sure to delete this->name_ in
5010 the Scheduler destructor to avoid a memory leak.
5012 * examples/Threads/task_four.cpp (close): Enhanced the close()
5013 method so that it will actually delete the memory for the
5016 * ace/XtReactor.cpp (register_handler_i): Added the
5018 if (mask & ACE_Event_Handler::ACCEPT_MASK)
5019 ACE_SET_BITS (condition, XtInputReadMask);
5021 Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
5024 * ace/Timer_Queue.cpp (expire): This is the only method that calls
5025 ACE_Timer_Queue::cancel() with dont_call_handle_close set to 0.
5027 * ace/Reactor: Modified the cancel_timer() methods so that they
5028 also take a dont_call_handle_close parameter and pass it on to
5029 the Timer_Queue::cancel() method.
5031 * ace/Timer_{List,Heap}.cpp: Modified all the cancel() methods so
5032 that they will not call handle_close() unless the new parameter
5033 dont_call_handle_close is 0 (it is 1 by default). This will
5034 avoid nasty problems with recursion. Thanks to Paul Han
5035 <phan@CCGATE.HAC.COM> for suggesting this.
5037 * ace/Timer_{List,Heap}.cpp (schedule): If a user tried to
5038 schedule a NULL ACE_Event_Handler then we return -1 with errno
5041 * ace/Message_Block.cpp: Somehow the file got screwed up and was
5042 reverted back to an earlier incarnation where we didn't use
5043 ACE_Service_Config::alloc()... Thanks to Matthias Kerkhoff
5044 <make@cs.tu-berlin.de> for figuring this out.
5046 Sat Apr 5 19:11:46 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
5048 * ace/Signal.i (ACE_Sig_Guard): Changed the constructor of
5049 ACE_Sig_Guard so that it doesn't call ACE_OS::sigprocmask for
5050 Win32. This keeps errno from being set to ENOSYS at random
5053 Sat Apr 05 17:27:02 1997 <irfan@TWOSTEP>
5055 * Registry.cpp (resolve): Type and size of the object is only set
5056 if RegQueryValueEx() returns success. Thanks to Alan
5057 (Alan_Cabrera@fp.cibc.com) for reporting this.
5059 Sat Apr 05 13:11:04 1997 David L. Levine <levine@cs.wustl.edu>
5061 * ace/Log_Msg.cpp (instance): Added another ACE_NO_HEAP_CHECK.
5062 Matthias provided the fix.
5064 * ace/config-win32.h: Disable ACE_HAS_STRICT by default, because
5065 it will break existing application code.
5067 * ace/OS.{h,cpp},Log_Msg.{h,cpp}: fixes from Matthias Kerkhoff
5068 <make@cs.tu-berlin.de> to avoid memory-leak reports when MFC
5069 or (the CrtHeapXXX()-functions of the Win32 runtime library)
5072 The problem is, that MFC (and so may other Win32 applications
5073 do) allocates a thread specific storage slot for each running
5074 thread which contains various control and debug informations.
5075 Part of this information is an object, which when constructed
5076 makes a snapshop of the heap. When this object is destroyed,
5077 the snapshot is compared to the actual heap. All object still
5078 existing on the heap are reported as memory leaks (which
5079 is in most situations correct). Because the object is deleted
5080 when the thread (or programs main) is left and this happens
5081 before atexit is called, some leak reports are false (because,
5082 e.g., all these ACE_Log_Msg's will be deleted in atexit).
5084 The fix for ACE_Log_Msg consists of three changes (two only
5085 relevant for Win32, one relevant for all platforms.)
5086 Description of changes:
5088 a) Introduced a new macro ACE_NO_HEAP_CHECK, which turns
5089 off the built in heap checking until the current code block
5090 is left. (defined for all platforms, but only does something
5091 for Win32). This changes os.h and config-win32-common.h.
5093 b) Added a static member function to ACE_Log_Msg. The function
5094 (exists) returns 0 if the calling thread don't have an ACE_Log_Msg
5095 and non-null if an ACE_Log_Msg exists. This changes Log_Msg.h
5098 c) Changed ACE_Thread_Adapter in a way that creating a new
5099 thread does not automatically create an ACE_Log_Msg for the
5100 calling thread. This happened until now, because the new
5101 thread inherited the log settings of the calling thread.
5102 This behaviour makes no sense, if the calling thread does
5103 not have an ACE_Log_Msg, so i use ACE_Log_Msg::exists() (see
5104 above) to prevent the implicit creation of an ACE_Log_Msg
5105 for the calling thread.
5109 * ace/config-win32.h and config-win32-common.h: new, consolidated
5110 Win32 config files. Thanks, again, Matthias!
5112 * ace/OS.h (ACE_UNUSED_ARG): determine whether we're building
5113 on an Irix platform by looking for ACE_HAS_IRIX_GETTIMEOFDAY
5114 instead of ACE_HAS_IRIX62_THREADS.
5116 * ace/Log_Msg.cpp: VxWorks (only!) change: no longer strdups
5117 program_name and local_host to avoid memory leaks. Instead,
5118 the addresses of these are copied by ACE_Log_Msg. So, only
5119 strings in the text segment should be passed to its functions!
5120 Again, this change is for VxWorks only.
5122 * ace/Sched_Params.cpp: moved memsets of pcinfo so that entire
5123 pcinfo structure is zeroed out, to _really_ avoid Purify warnings.
5125 Fri Apr 04 12:28:40 1997 David L. Levine <levine@cs.wustl.edu>
5127 * ace/config-mvs.h: removed ACE_HAS_IP_MULTICAST because MVS
5128 doesn't define ip_mreq. Thanks to Chuck Gehr
5129 <gehr@sweng.stortek.com> for reporting this.
5131 * ace/OS.i (mutex_init): fixed the extra braces once and for all.
5132 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting it.
5134 * ace/OS.i, config-sco-5.0.0*.h: fixed for SCO so that it uses
5135 single-argument gettimeofday () prototype, but calls two-arg
5136 (SVR4) version in ACE_OS::gettimeofday (). Thanks to Ganesh
5137 Ganesh Pai <gpai@voicetek.com> for solving this problem.
5139 * ace/Log_Msg.{h,cpp}: added ACE_Log_Msg destructor. In
5140 instance (), added call to ::atexit () (::taskDeleteHookAdd ()
5141 on VxWorks) to register cleanup handler. Each new instance
5142 of an ACE_Log_Msg is inserted into an ACE_Unbounded_Set; the
5143 cleanup handler iterates over the Set and deletes the
5144 ACE_Log_Msgs at program exit.
5146 Also, the two strings that are allocated get cleaned up after
5147 the last ACE_Log_Msg instance is deleted. Many thanks to
5148 Matthias Kerkhoff <make@cs.tu-berlin.de> for figuring this out
5149 and cranking out the code.
5151 It works differently on VxWorks, because it doesn't have
5152 ::atexit (). VxWorks has ::taskDeleteHookAdd (), which is
5153 called when each task exits. So, the Set isn't used. Instead,
5154 the cleanup hook is called for each task when it exits, passing
5155 the task control block (TCB) of the exiting task. A pointer to
5156 the ACE_Log_Msg instance is contained in one of the spare fields
5157 of the TCB, so the cleanup handler simply deletes it.
5159 * ace/IOStream.h: specify template parameter (ACE_IOStream<STREAM>)
5160 to ACE_OPERATOR{G,P}_SET macros. Thanks to Chuck Gehr
5161 <gehr@sweng.stortek.com> for providing this fix.
5163 Thu Apr 3 22:17:53 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
5165 * ace/Registry.cpp: Changed STRING_SEPARATOR from Istring to
5166 LPCTSTR. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
5169 Thu Apr 3 21:39:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
5171 * ace/OS.i (mutex_init): Removed errant open-brace ('{'). Thanks
5172 to Chuck Gehr (gehr@sweng.stortek.com) for the fix!
5174 Thu Apr 03 08:52:34 1997 David L. Levine <levine@cs.wustl.edu>
5176 * ace/OS.h,OS.cpp,Sched_Params.cpp: added /**/ to some #include
5177 directives. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
5178 for reporting these.
5180 * ace/OS.cpp (writev, readv): changed type of local variable "i"
5181 from size_t to int to avoid signed/unsigned mismatch. Thanks
5182 to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting this.
5184 * ace/OS.cpp (readv), SOCK_Dgram.cpp (recv): added casts of
5185 iov_len and copyn because iov_len is int on some platforms and
5186 size_t on others. This avoids compiler (MSVC 4.1) warnings.
5187 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting
5190 * include/makeinclude/platform_sco5.0.0-nothread.GNU:
5191 updated CCFLAGS and added LD=$(CXX). Thanks to
5192 Ganesh Pai <gpai@voicetek.com> for these fixes.
5194 * ace/OS.h: added #include of <sys/regset.h> for SCO only.
5195 Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
5197 * ace/config-sco-5.0.0*.h: added #define ACE_HAS_IP_MULTICAST.
5198 Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
5200 * ace/config-{chorus,linux*,sco*}.h: removed #define of
5201 ACE_HAS_INLINED_OSCALLS because it's no longer needed in the
5202 config files: it's #defined in OS.h if needed.
5204 Thu Apr 3 01:48:01 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
5206 * ace/Malloc.i (malloc): ACE_New_Allocator::malloc only calls new
5207 if nbytes is > 0. Purify was complaining that 0 bytes were
5208 allocated but never deleted. Go figure.
5210 Wed Apr 2 22:24:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
5212 * ace/OS.cpp: Moved the ACE_OS::inet_aton() method into the *.cpp
5213 file and made it non-inline to work around a bug with HP/UX C++.
5214 Thanks to Neil Cohen for this fix.
5216 Wed Apr 02 10:09:37 1997 David L. Levine <levine@cs.wustl.edu>
5218 * ace/config-sunos5.5-sunc++-4.1.h: added template specialization
5221 * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed +w
5222 and added comments about Sun C++ 4.2 support.
5224 * include/makeinclude/platform_chorus.GNU, platform_hpux_gcc.GNU,
5225 platform_irix5.{2,3_g++}.GNU, platform_linux{_,pthread}.GNU,
5226 platform_m88k.GNU,platform_osf1_4.0_g++.GNU,
5227 platform_sco-nothread.GNU,platform_sco5.0.0-*.GNU,
5228 platform_sunos{4,5}_g++.GNU, platform_sunos5_x86_g++.GNU,
5229 platform_unixware_g++.GNU, platform_vxworks5.2_g++.GNU:
5230 added -fno-implicit-templates to CCFLAGS. See INSTALL file
5231 for discussion of the g++ option. Also, added -O2 because
5232 it dramatically reduces object file sizes.
5234 * netsvcs/clients/Tokens/manual/manual.cpp: made
5235 STDIN_Token::TID typedef public so that template
5236 specialization (w/ Sun C++ 4.2) can access it.
5238 Wed Apr 2 10:02:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
5240 * ace/OS.h: Added definitions for THREAD- and PROCESS-LEVEL
5241 priorities because some implementations define these while
5242 others don't. These are now
5243 ACE_{THR,PROC}_{FIFO,RR,OTHER}_{MIN,MAX,DEF}. The only really
5244 NEW concept is the *_DEF, which is a default value assigned by
5245 ACE_OS::thr_create() if one isn't given. Of special note is that
5246 we don't redefine a default values if it's already been
5247 defined, which allows individual programs to have their
5248 own ACE-wide "default".
5250 * ace/OS.cpp (thr_create): Uses ACE_{THR,PROC}_* macros
5251 rather than the PRI_* macros.
5253 * ace/Sched_Params.cpp (priority_min,priority_max): These now
5254 use ACE_{THR,PROC}_* macros to ignore OS-specific priority
5257 * ace/config-linux-lxpthreads.h: Removed definitions of
5258 PRI_{FIFO,RR,OTHER}_{MIN,MAX}.
5260 * include/makeinclude/platform_linux*.GNU (CCFLAGS): Added
5261 -fno-implicit-templates now that it's supported. This
5262 eliminates messages of the sort 'ld: Warning size of
5263 <mangled template specialization name> change from xx to yy'
5264 when linking libACE.so. Thanks to David Levine for making
5267 Tue Apr 1 15:27:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5269 * bin/g++dep: Removed the "/bin" prefix so that this won't fail on
5270 platforms that don't have sed in /bin. Thanks to Sandro Doro
5271 <alex@aureus.sublink.org> for this fix.
5273 Tue Apr 01 09:55:07 1997 David L. Levine <levine@cs.wustl.edu>
5275 * ace/OS.h: protected definition of struct flock on VxWorks,
5276 because it defines that type in sys/fcntlcom.h. (It doesn't
5277 appear to support flock (), though.) Thanks to Dave
5278 Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
5280 * ace/OS.h: define ACE_hrtime_t as u_longlong_t gcc, because
5281 its long long types are only 4 bytes long. Its longlong_t
5282 types are 8 bytes. Also made ACE_hrtime_t unsigned for
5283 other than gcc on Unix platforms.
5285 * ace/OS.* (gethrtime), config-vxworks-ghs-1.8.h: added support
5286 for PowerPC with Green Hills compiler. Thanks to Dave
5287 Mayerhoefer <mayerhoefer@svappl36.mdc.com> for providing the
5288 readPPCTimeBase assembler routine.
5290 * ace/config-vxworks*.h: removed #include of vxWorks.h because
5291 its no longer necessary with the TimeValue.h merged into OS.h.
5293 * ace/High_Res_Timer.cpp (elapsed_time): added cast to
5294 initialization of nseconds to avoid compiler warning from
5295 MSVC 4.1 about narrowing from unsigned __int64.
5296 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
5299 Mon Mar 31 18:18:35 1997 Carlos O'Ryan <coryan@charlie>
5301 * ace/config-hpux-10.x-g++.h:
5302 It was tuned to HP-UX 10.10 (and further) using g++ 2.7.2 without
5306 Another iteration on the Module.h file, this time it is not
5307 included *only* under HPUX and when using HP/aCC. Still IMHO
5308 problems will arise as template sintax checking becomes more
5311 * ace/Local_Name_Space_T.h:
5312 * ace/Local_Name_Space_T.cpp:
5313 Replaced MAXNAMELEN with MAXPATHLEN since some platforms
5314 (e.g., HP/UX) have a very low value (e.g., 14 bytes) for
5317 * ace/config-hpux-10.x-aCC.h:
5318 The comment did not make clear what was compiler/platform
5319 target. It also included some remarks that only applied to
5322 * tests/Future_Test.cpp:
5323 * tests/Message_Block_Test.cpp:
5324 * tests/Thread_Pool_Test.cpp:
5325 Will not compile if ACE_HAS_THREADS was not defined and
5326 ACE_TEMPLATES_REQUIRE_SPECIALIZATION was: they tried to
5327 instantiate templates that were only defined when ACE_HAS_THREADS.
5329 * ace/config-hpux-10.x-aCC.h:
5330 More fine tuning: ACE_HAS_EXCEPTIONS,
5331 ACE_LACKS_LINEBUFFERED_STREAMBUF,
5332 ACE_HAS_STREAM_PIPES.
5335 * ace/TLI_Acceptor.h:
5336 No "Meta-type info" was defined (the PEER_ADDR and PEER_STREAM
5341 With HP/aCC we can enable ACE_Sig_Handlers.
5343 Mon Mar 31 22:36:55 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
5345 * ace/Service_Config.cpp (process_directives): Return -1 if
5346 ace_yyerrno > 0. Thanks to Alan Cabrera
5347 <Alan_Cabrera@fp.cibc.com> for reporting this.
5349 Mon Mar 31 17:38:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
5351 * ace/OS.cpp (thr_create): Moved priority determination after
5352 policy determination because it's possible for setting of the
5353 priority to fail if it's not a valid priority for the [default]
5356 Mon Mar 31 09:00:54 1997 David L. Levine <levine@cs.wustl.edu>
5358 * performance-tests/Misc/context_switch_time.cpp: this test no
5359 longer worked. So, reverted to revision 4.5, plus minimum
5360 changes necessary to support build on platforms without threads.
5362 * examples/Threads/Makefile, performance-tests/Misc/Makefile:
5363 moved context_switch_time.cpp from examples/Threads to
5364 performance-tests/Misc.
5366 * examples/Logger/Acceptor-server/server_loggerd.cpp,
5367 examples/Reactor/Misc/pingpong.cpp,
5368 examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
5369 examples/Shared_Malloc/Malloc.cpp:
5370 added template specializations.
5372 * include/makeinclude/platform_sunos5_g++.GNU: removed dependency
5373 of CCFLAGS on CFLAGS to avoid duplicate -g in build command.
5374 Also, added -fno-implicit-templates in comment.
5376 Sun Mar 30 12:52:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5378 * ace/Malloc.h: The block begining with:
5379 #if defined (ACE_MALLOC_STATS)
5380 and ending with end of struct ACE_Malloc_Stats
5381 must be moved (up) after line 107
5383 Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
5386 * ace/Malloc_T.cpp: The line
5387 this->malloc_stats_.dump ();
5389 this->cb_ptr_->malloc_stats_.dump ();
5391 Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
5394 * ace/Malloc_T.cpp: the line
5395 this->cb_ptr_->malloc_stats_.print (); // print not exists
5397 this->cb_ptr_->malloc_stats_.dump ();
5399 Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
5402 * ace/Malloc_T.h: Added "virtual" to the ACE_New_Allocator methods
5403 to reinforce the fact that they are indeed virtual. Thanks to
5404 Sandro Doro <alex@aureus.sublink.org> for pointing this out.
5406 * ace/Malloc.h: Added "virtual" to the ACE_New_Allocator methods
5407 to reinforce the fact that they are indeed virtual.
5409 Sat Mar 29 20:26:54 1997 David L. Levine <levine@cs.wustl.edu>
5411 * ace/OS.h: moved #defin of RTLD_LAZY after #include of dlfcn.h.
5412 Thanks to Chris Lahey <CLahey@cccis.com> for this fix.
5414 * ace/Task_T.h: replaced #include of "ace/Module.h" because some
5415 Task_T methods use ACE_Module methods.
5417 * examples/Connection/non_blocking/test_{sock,spipe,tli}_{acceptor,
5419 examples/System_V_IPC/SV_Semaphores/Semaphores_{1,2}.cpp:
5420 added template specializations.
5422 Sat Mar 29 17:08:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5424 * ace/OS.cpp: Added many new ACE_UNUSED_ARGS macros to eliminate
5425 warnings when we are compiling without threads.
5427 Fri Mar 28 11:34:38 1997 David L. Levine <levine@cs.wustl.edu>
5429 * ace/Task.{h,cpp},Thread_Manager.h: changed remaining
5430 priority types to long and defaults to -1.
5432 * ace/Thread_Manager.cpp (spawn_i): don't clobber errno!
5433 ACE_OS::thr_create () sets errno and returns -1. So,
5434 its return value should not be used to set errno.
5436 * ace/OS.cpp (thr_create): fixed PTHREADS_1003_DOT_1C thread
5437 priority logic. Thanks to Thilo Kielmann
5438 <kielmann@informatik.uni-siegen.de> for the patch.
5440 * ace/config-sunos5.5*.h,README,OS.cpp (thr_create): added
5441 ACE_HAS_ONLY_SCHED_OTHER to indicate that platform (Solaris 2.5)
5442 only supports POSIX SCHED_OTHER scheduling policy.
5444 * tests/Priority_Task_Test.cpp (open): added THR_SCHED_FIFO flag.
5445 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
5446 for this suggestion.
5448 * examples/ASX/Event_Server/Event_Server/Makefile,
5449 Transceiver/Makefile:
5450 added -lGateway to LIBS to pick up its template
5451 instantiations during links.
5453 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
5454 Transceiver/transceiver.cpp,
5455 Connection/blocking/SPIPE-{acceptor,connector}.cpp,
5456 misc/Connection_Handler.cpp,test_upipe.cpp,
5457 Logger/simple-server/server_loggerd.cpp,
5458 UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
5459 performance-tests/Synch-Benchmarks/Options.cpp:
5460 added template specializations.
5462 Thu Mar 27 21:10:59 1997 David L. Levine <levine@cs.wustl.edu>
5464 * ace/IOStream.h: only use built-in ipfx{0,1} () with __GNUC__,
5465 because that's the only compiler we know of that has them.
5466 Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for pointing this
5467 out, and to James CE Johnson <jcej@lads.com> for providing the fix.
5469 * ace/OS.i: rearranged order of ACE_Time_Value functions (moved
5470 set ()'s up, moved arithmetic operators down) so that they are
5473 * ace/Task_T.cpp: removed ACE_TEMPLATES_REQUIRE_SOURCE around
5474 #include of "ace/Module.h" so that it will build with Sun C++ 4.1.
5476 * apps/Gateway/Peer/Makefile: added -lGateway to LIBS to
5477 pick up its template instantiations during links.
5479 * apps/Gateway/Peer/Peer.cpp: added template instantations.
5481 Thu Mar 27 14:10:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5483 * ace/OS.h: Added two new accessors to ACE_Time_Value:
5485 operator timeval *() const;
5486 // Returns a pointer to the object as a timeval.
5488 const operator timeval *() const;
5489 // Returns a pointer to the object as a timeval.
5491 Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for this suggestion.
5493 * ace/OS.i (ACE_Time_Value): Inlined many of the ACE_Time_Value
5496 * ace/OS.h: Reimplemented ACE_Str_Buf at
5498 struct ACE_Export ACE_Str_Buf : public strbuf
5500 // = Initialization method
5501 ACE_Str_Buf(void* b = 0, int l = 0, int max = 0);
5505 this makes the casting from ACE_Str_Buf* to strbuf* a "safe"
5506 cast and makes it more portable (say on platforms where the
5507 fields in strbuf are not in the right order). Thanks to Carlos
5508 O'Ryan <coryan@mat.puc.cl> for this fix.
5510 * ace/OS.h: Moved the definition of imr_multiaddr to just before
5511 class ACE_OS so that it picks everything up appropriately.
5512 Thanks to Hakan Kallberg <hk@simulina.se> for reporting this.
5514 * ace/config-aix-4.[12].x.h and config-mvs.h: Fixed the
5515 ACE_HAS_MULTICAST macros, which should have said
5516 ACE_HAS_IP_MULTICAST. Thanks to Daniel Montalibet
5517 <daniel_montalibet@stortek.com> for reporting this.
5519 Thu Mar 27 15:54:10 1997 Chris Cleeland <cleeland@cs.wustl.edu>
5521 * ace/{Thread,Thread_Manager}.{h,i,cpp} (ACE_Thread): Changed
5522 type for priority arg to spawn*() from u_int to long to
5523 support changes in thr_create indicated below. Thanks to
5524 Thilo Kielmann <kielmann@informatik.uni-siegen.de> for these
5527 * ace/OS.cpp: Ensure that whenever either a priority of a
5528 scheduling policy is set explicitly, with POSIX threads, the
5529 other argument and the flag THR_EXPLICIT_SCHED is set
5530 automatically. A range check for priority values for POSIX
5531 1003.1c is also included. Thanks to Thilo Kielmann
5532 <kielmann@informatik.uni-siegen.de> for these changes.
5534 * ace/OS.h: Changed type and default value of priority arg to
5535 thr_create from u_int to long and 0 to -1. Thanks to Thilo
5536 Kielmann <kielmann@informatik.uni-siegen.de> for these
5537 changes. Also added ACE_MAX and ACE_MIN macros.
5539 Thu Mar 27 11:25:38 1997 David L. Levine <levine@cs.wustl.edu>
5541 * netsvcs/servers/Makefile: removed SHOBJ so that main.so is not
5542 built, because it wasn't needed. Thanks to Sandro Doro
5543 <alex@aureus.sublink.org> for this fix.
5545 * ace/config-aix-4.[12].x.h,config-mvs.h: changed
5546 ACE_HAS_MULTICAST to ACE_HAS_IP_MULTICAST. Thanks to Daniel
5547 Montalibet <daniel_montalibet@stortek.com> for reporting
5550 * include/makeinclude/platform_sunos5_g++.GNU,
5551 platform_sunos5_x86_g++.GNU,
5552 platform_unixware_g++.GNU:
5553 removed "-L$(WRAPPER_ROOT)/ace -L./" from LDFLAGS because it
5554 is added to LDFLAGS in include/makeinclude/wrapper_macros.GNU.
5556 * apps/Gateway/Gateway/{Event_Channel.cpp,Gateway.cpp,
5557 Proxy_Handler.cpp,Proxy_Handler_Acceptor.cpp,
5558 Proxy_Handler_Connector.cpp,
5559 examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp,
5560 netsvcs/clients/Naming/Client/Client_Test.cpp,
5561 netsvcs/clients/Tokens/manual/manual.cpp:
5562 added template specializations.
5564 Thu Mar 27 10:05:59 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
5566 * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed two things:
5567 1) In TS_Clerk_Processor::parse_args() changed
5568 "%n:\n[-p hostname:port] [-t timeout] [-p poolname]\n%a", 1),
5570 "%n:\n[-h hostname:port] [-t timeout] [-p poolname]\n%a", 1),
5572 2) In TS_Clerk_Processor::alloc() changed
5574 // Only create the state if it doesn't already exist.
5575 if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1)
5577 // Allocate the space out of shared memory for the system time entry
5578 temp = this->shmem_->malloc (sizeof (this->system_time_));
5582 // Only create the state if it doesn't already exist.
5583 if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR) == -1)
5585 // Allocate the space out of shared memory for the system time entry
5586 void *temp = this->shmem_->malloc (sizeof (this->system_time_));
5588 Thanks to Sandro Doro (alex@aureus.sublink.org) for suggesting these changes.
5590 Thu Mar 27 01:00:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5592 * include/makeinclude/platform_irix6.2_sgiCC.GNU: Added a new
5593 platform config file for SGI Irix 6.2 using the CC compiler (not
5594 NCC nor the MipsProcompiler). Thanks to Eric Dean Russell
5595 <edrusse@somnet.sandia.gov> for these changes.
5597 * ace/OS.h: Moved the ACE_LACKS_UTSNAME_T block into the right
5598 part of the code. Thanks to Jonathan Biggar <jon@sems.com> for
5601 * ace/Malloc.h: Added an enhancement so that the new alignment
5602 features will work regardless of the size of ACE_MALLOC_ALIGN.
5603 Thanks to Fred LaBar <flabar@fallschurch.esys.com> for this fix.
5605 * ace/Synch_Options.cpp: We now automatically set the USE_TIMEOUT
5606 flag if a non-0 timeout value is supplied. Thanks to Tim
5607 Liddelow <tim@cst.com.au> for this suggestion.
5609 Wed Mar 26 08:47:24 1997 David L. Levine <levine@cs.wustl.edu>
5611 * ace/{ACE.cpp,Log_Msg.cppOS.cpp},
5612 tests/{Message_Queue_Test.cpp,Naming_Test.cpp}:
5613 Changed ::sprintf calls to ACE_OS::sprintf. Thanks to
5614 Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
5617 * netsvcs/lib/{Client_Logging_Handler.cpp,Name_Handler.cpp,
5618 Server_Logging_Handler.cpp,TS_Service_Handler.cpp,
5619 Token_Handler.cpp}: added template specializations.
5621 Tue Mar 25 06:47:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
5623 * ace/OS.h: Moved config.h to the top of OS.h so that we don't
5624 have to worry about not defining things in the right place.
5625 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
5628 Tue Mar 25 22:54:49 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
5630 * ace/OS.i: Added UNICODE support for ACE_OS::chdir(). Thanks to
5631 Ivan Murphy <Ivan.Murphy@med.siemens.de> for the code.
5633 Tue Mar 25 21:26:10 1997 David L. Levine <levine@cs.wustl.edu>
5635 * ace/TTY_IO.{h,cpp},README, and these config files:
5636 config-aix-*.h, config-hpux-*.h, config-irix5.*.h,
5637 config-mvs.h, config-osf1-*.h, config-sun*.h (except for g++
5638 and config-sunos5.5-sunc++-4.1.h), config-win*.h:
5639 Added ACE_NEEDS_DEV_IO_CONVERSION to conditionally compile the
5640 ACE_DEV_IO & conversion operator for ACE_TTY_IO, which is a
5641 subclass of ACE_DEV_IO. Thanks to Fred LaBar
5642 <flabar@fallschurch.esys.com> and Gonzalo Diethelm
5643 <gonzo@ing.puc.cl> for reporting warnings without this on
5644 Irix 6.2 with the mipsPro compiler.
5646 * ace/OS.cpp (thr_create): on VxWorks, always pass 0 as first arg to
5647 ::taskSpawn () so that VxWorks will generate the task ID.
5648 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com>
5649 for providing this fix, without which random task names would
5652 * ace/ACE.cpp (get_bcast_addr): added return 0 at end of non-WIN32
5653 code to avoid compile warning from g++.
5655 * tests/IOStream_Test.cpp: removed extra "(%P|%t)" from output.
5656 I couldn't get ACE_ERROR_RETURN to work on g++: it complained
5657 about mismatched return types when returning an int from a
5658 function that returns a void *, and about mismatched arguments
5659 to an ACE_Log_Msg function if I cast the int to a void *. So,
5660 I used ACE_ERROR instead.
5661 Added ACE_UNUNSED_ARG (arg). Removed unused variables
5662 error_at_server and error_at_client.
5664 * netsvcs/lib/TS_Clerk_Handler.cpp: added another template
5667 * examples/Reactor/Multicast/client.cpp: Log_Wrapper::LOG_DEBUG
5668 instead of LM_DEBUG.
5670 * examples/Threads/context_switch_time.cpp: use ACE_Sched_Params
5671 to get platform-dependent thread priorities. Also, moved #includes
5672 so that config.h is read before testing for ACE_HAS_THREADS.
5674 * examples/Threads/{auto_event.cpp,barrier2.cpp,future1.cpp,
5675 future2.cpp,reader_writer.cpp,tss1.cpp,tss2.cpp}:
5676 added template specializations.
5678 Tue Mar 25 10:01:05 1997 Chris Cleeland <cleeland@cs.wustl.edu>
5680 * config-linux.h: Added
5681 ACE_HAS_{SVR4_DYNAMIC_LINKING,AUTOMATIC_INIT_FINI}. Thanks to
5682 alex@aureus.sublink.org (Sandro Doro) for the change.
5684 * platform_linux.GNU: Added -ldl to LIBS. Thanks to
5685 alex@aureus.sublink.org (Sandro Doro) for the change.
5687 Tue Mar 25 16:01:34 1997 Carlos O'Ryan <coryan@charlie>
5689 * ace/Svc_Handler.cpp:
5690 I forgot to comment this: "operator delete" used to call ::delete
5691 on a void*, on ANSI/C++ this is not allowed. Since "operator new"
5692 calls ::new for a char[] I do a casting to char* and call
5693 ::delete[] on the char pointer.
5695 * ace/config-hpux-10.x-aCC.h:
5696 HP-UX 10.10 supports CLOCK_GETTIME, my guess is that it should
5697 work with g++ and HP/C++, but I won't mess with those files yet.
5700 The default address parameter for "connect" is a bit tricky, from
5701 the comments in the file:
5703 // If the compiler supports 'typename' we cannot use
5705 // PEER_CONNECTOR::PEER_ADDR::sap_any
5707 // because PEER_CONNECTOR::PEER_ADDR is not considered a
5710 // typename PEER_CONNECTOR::PEER_ADDR::sap_any
5712 // will not work either, because now we are declaring sap_any a
5715 // (typename PEER_CONNECTOR::PEER_ADDR)::sap_any
5717 // is considered a casting expression. All I can think of is
5718 // using a typedef, I tried PEER_ADDR but that was a source of
5719 // trouble on some platforms. I will try:
5721 typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF;
5724 The stock HP C++ compiler (cfront based) gives lots of warnings in
5725 <net/if.h>. I used to define volatile to avoid this warnings. Now
5726 I think I'll rather like to see them.
5728 * ace/SPIPE_Stream.h:
5729 * ace/SPIPE_Connector.h:
5730 There was no meta-type info (PEER_ADDR) for SPIPE_Stream and
5733 * ace/Stream_Modules.h:
5734 * ace/Stream_Modules.cpp:
5735 Fixed a "bug" introduced in my last change: a couple of
5736 ACE_ALLOC_HOOK_* were commented but shouldn't.
5738 * examples/Connection/non-blocking/CPP-acceptor.cpp (open):
5739 PR_AD cannot be used in this context, it expands to
5740 _ACE_PEER_ACCEPTOR::PEER_ADDR (via ACE_PEER_ACCEPTOR_ADDR), but
5741 the template parameter is _ACE_PEER_STREAM (aka PR_ST_1, aka
5743 The right macro was ACE_PEER_STREAM_ADDR.
5746 * ace/Connector.cpp:
5747 The typedef trick I used (PEER_ADDR) did not work on every
5749 I also broke some examples since ACE_PEER_CONNECTOR_ADDR did not
5750 include ACE_TYPENAME on its definition. Hopefully this new trick
5751 will work everywhere.
5753 * I finally sorted out the mistery of including "ace/Module.h"
5754 into "ace/Task_T.cpp": when compiling "ace/Stream_Modules.cpp" you
5755 get the following include sequence:
5761 Message_Queue.h (descendants removed)
5762 Synch_T.h (descendants removed)
5763 Task.h (already included).
5767 ACE.h (descendants removed)
5768 Task.h (already included).
5772 At this point Module.cpp uses ACE_Thru_Task declared on
5773 Stream_Modules.h, but after the #include "ace/Task.h";
5774 in fact Module.cpp tries to #include "ace/Stream_Modules.cpp" but
5775 that second #include expands to nothing due to the canonical
5776 protection on Stream_Modules.h.
5777 That explains the removal of Module.h in Task_T.cpp.
5778 If you are wondering why so long an explanation for this change
5779 the answer is simple: just because I was curious on now it worked.
5781 Mon Mar 24 14:08:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5783 * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Cleaned up the code a
5786 * ace/ACE: Added a new method called get_bcast_addr() which will
5787 get the broadcast address for a host. Thanks to Paul Han
5788 <phan@CCGATE.HAC.COM> for suggesting this.
5790 * ace/UNIX_Addr: Added another set method in UNIX_Addr class:
5792 void set (const ACE_UNIX_Addr &sa);
5793 // Creates an ACE_UNIX_Addr from another <ACE_UNIX_Addr>.
5795 Thanks to Paul Han <phan@CCGATE.HAC.COM> for this.
5797 * ace/SOCK_Dgram: Removed the #if defined (ACE_HAS_IP_MULTICAST)
5798 since this is now handled at the ACE_OS level.
5800 * ace/OS.h: Added support for IP multicast macros and structs even
5801 on platforms that don't support it so that the tests will
5802 compile without having lots of #ifdefs.
5804 * tests/Future_Test.cpp: Added a check for platforms that lack
5805 threads. Thanks to Hakan Kallberg <hk@simulina.se>
5808 * netsvcs/lib/Server_Logging_Handler.cpp: Added a check for
5809 platforms that lack threads. Thanks to Hakan Kallberg
5810 <hk@simulina.se> for reporting this.
5812 * examples/Threads/context_switch_time.cpp: Added an #ifdef for
5813 ACE_HAS_THREADS to this test so that it will compile on
5814 platforms that don't have threading. Thanks to Scott Halstead
5815 <scott.halstead@gs.com> for reporting this.
5817 * tests/IOStream_Test.cpp: Fixed up this test so that it works
5818 correctly on platforms that lack multi-threading. Thanks to
5819 Scott Halstead <scott.halstead@gs.com> for reporting this.
5821 * netsvcs/lib/Makefile: Reincluded the LIB target so that we'll
5822 build a static library. Thanks to Scott Halstead
5823 <scott.halstead@gs.com> for reporting this.
5825 * ace/SOCK_Dgram.cpp (recv): Added a check to make sure that we
5826 don't try to copy more into the recv buffer than we've really
5827 got. Thanks to Alan_Cabrera@fp.cibc.com for this fix.
5829 * ace/OS.cpp (readv): Added a check to make sure that we don't try
5830 to copy more into the recv buffer than we've really got. Thanks
5831 to Alan_Cabrera@fp.cibc.com for this fix.
5833 * ace/Malloc.h: Modified the alignment strategy to define
5834 ACE_MALLOC_ALIGN to a number of bytes. (it gets rounded to a
5835 number of long's). This makes it easier to work with more
5836 complex buffer alignment strategies (e.g., DMA). Thanks to Fred
5837 LaBar <flabar@fallschurch.esys.com> for this.
5839 * ace/OS.cpp (readv): Added several more changes for the readv()
5840 emulation. Thanks to Alan Cabrera <Alan_Cabrera@fp.cibc.com>
5841 and Adam Porter <aporter@cs.umd.edu> for these fixes.
5843 Mon Mar 24 14:22:17 1997 David L. Levine <levine@cs.wustl.edu>
5845 * ace/OS.cpp (thr_create): For VxWorks, fixed call to ::taskSpawn ().
5846 ACE's arguments are in an array, not individual arguments.
5847 Also, set flags to VX_FP_TASK if it's 0, to match behavior
5848 of ::sp (). Thanks to Dave Mayerhoefer
5849 <mayerhoefer@svappl36.mdc.com> for reporting these and providing
5852 * ace/High_Res_Timer.cpp (elapsed_time (struct timespec &):
5853 fixed, using same approach as in elapsed_time
5854 (ACE_hrtime_t &nanoseconds), to get nanosecond resolution.
5856 * netsvcs/lib/TS_Clerk_Handler.cpp (handle_close): added
5857 ACE_UNUSED_ARG (mask). Also, added template specializations.
5859 * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
5860 rearranged initializers to match declaration order.
5862 * examples/IOStream/server/iostream_server.cpp,
5863 client/iostream_client.cpp:
5864 added template specializations.
5866 Mon Mar 24 13:21:31 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
5868 * ace/High_Res_Timer.cpp (elapsed_time): Added an
5869 ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanosecond)
5870 method that returns the number of elapsed nanoseconds. This is
5871 accomplished even with the scale factors converting to
5872 microseconds. It also does not use floating point
5875 Sun Mar 23 13:25:39 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
5877 * ace/High_Res_Timer.h: Removed <scale_factor> from the
5878 constructor of High_Res_Timer. All High_Res_Timers now use
5879 global_scale_factor_ directly. Hopefully, this will not break
5882 Sat Mar 22 12:06:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
5884 * ace/OS.h: The include statement for config.h was too low. Some
5885 defines for key_t, needed for NT, didn't work. Thanks to Alan
5886 Cabrera <Alan_Cabrera@fp.cibc.com> for these fixes.
5888 * examples/Reactor/Multicast: Improved the multicast client and
5889 server programs to work better.
5891 * ace/Connector.cpp: Modified the ACE_Connector::handle_close()
5892 method to prevent recursive calls to itself. Thanks to Paul Han
5893 <phan@CCGATE.HAC.COM> for reporting this.
5895 * ace/Svc_Handler.cpp: Put the check (closing_ == 0) in the
5896 destructor as well as in the destroy() method. This prevents a
5897 possible core dump when the timer exists. The instruction
5898 reactor::remove_handler in the shutdown method currently will be
5899 called twice when ACE_Svc_Handler object is being deleted. Core
5900 dump occurs when it tries to execute ACE_Reactor::remove_handler
5901 method the second time because the ACE_Svc_Handler object
5902 pointer has already been deleted by the previous instruction
5903 ACE_Reactor::cancel_timer. Thanks to Paul Han
5904 <phan@CCGATE.HAC.COM> for reporting this.
5906 * ace/OS.cpp: Added new thread-safe implementations of writev()
5907 and readv() for platforms that lack these functions.
5909 * ace/SOCK_Dgram.cpp: Added new implementations of
5910 ACE_SOCK_Dgram::{send,recv} that define methods for
5911 send(iovec[], ...) and recv(iovec[], ...) for systems that
5912 don't have sendmsg() and recvmsg(). Thanks to Alan Cabrera
5913 <Alan_Cabrera@fp.cibc.com> for these fixes.
5915 * apps/jaws/HTTP_Handler.cpp: Removed some problematic template
5916 specializations that were left over from an earlier version of
5917 JAWS. Thanks to Adam Porter <aporter@cs.umd.edu> for reporting
5920 * examples/Logger/Acceptor-server/server_loggerd.cpp: Revised the
5921 code to use the new ACE_Svc_Handler logic that checks to ensure
5922 that we don't recurse infinitely in handle_close().
5923 Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
5924 reporting this problem.
5926 * examples/Logger/simple-server/Logging_Handler.cpp
5927 (handle_close): Added a check to make sure we don't end up
5928 recursively calling handle_close(). This will prevent
5931 Sat Mar 22 07:30:49 1997 David L. Levine <levine@cs.wustl.edu>
5933 * ace/High_Res_Timer.*: Changed scale factor to convert
5934 platform-dependent clock units to microseconds instead of
5935 nanoseconds. That way, it should be greater than 1 for
5936 all supported platforms. So, it's now an unsigned long
5937 instead of a double.
5939 * ace/OS.h: Changed ACE_hrtime_t to unsigned __int64 with
5940 _MSC_VER. Also, fixed typo: "uint64" instead of "unit64"
5943 Fri Mar 21 08:37:34 1997 Carlos O'Ryan <coryan@charlie>
5945 * makeinclude/rules.lib.GNU:
5946 I use the macro SOEXT to support HP non-standard extension for
5947 shared library names (.sl instead of .so).
5948 I also changed the rule to build shared libraries: under HP-UX you
5949 cannot pass extra libraries (-lXXX options) when building a shared
5950 lib. Before HP-UX 10.10 it wasn't a problem because no library was
5951 needed with ACE, but to support XLI the '-lxti' flag must be used
5952 on binaries (but not on shared libs).
5954 * include/makeinclude/platform_hpux.GNU:
5955 The PIC option (+Z) was used always, clearly not intended.
5957 * include/makeinclude/platform_hpux_gcc.GNU:
5958 Added a config file for g++ under HP-UX.
5960 * include/makeinclude/platform_hpux_aCC.GNU:
5961 Added a config file for HP/aCC compiler under HP-UX.
5964 * netsvcs/lib/Makefile:
5965 Changed to support the SOEXT macro.
5967 * config-hpux-10.x.h:
5968 * config-hpux-10.x-aCC.h:
5969 * config-hpux-10.x-g++.h:
5970 I updated the files to HP-UX 10.10, AFAIK since that version HP-UX
5971 uses fd_set instead of int in select(2) (so ACE_SELECT_USES_INT is
5972 not needed) and the OS supports siginfo_t and ucontext_t so
5973 ACE_HAS_SIGINFO_T and ACE_HAS_UCONTEXT_T are defined.
5974 I *do not* have threads at my site nor the infamous PHSS_6246
5975 patch so I couldn't test the threaded version nor the HP cfront
5977 ACE compiled fine with g++ and HP/aCC though.
5981 HP/aCC supports the typename keyword. I added a new config macro
5982 'ACE_HAS_TYPENAME_KEYWORD', when it is defined ACE_TYPENAME
5983 expands to 'typename' when not it expands to nothing.
5984 On the cases where HP/aCC requires the usage of 'typename' I added
5989 ACE_OS::inet_aton cannot be inlined under HP-UX.
5992 * ace/Connector.cpp:
5993 I have decided to use a typedef (PEER_ADDR) instead of
5994 ACE_PEER_CONNECTOR_ADDR, mainly because the second form
5995 requires a ACE_TYPENAME before each usage.
5997 * ace/Event_Handler_T.i:
5998 Much to my surprize ACE_TYPENAME is required when using a template
5999 typedef as a return value.
6001 * ace/Local_Name_Space_T.h:
6002 HP/aCC does not like the usage of a private typedef from another
6005 * ace/Strategies_T.h:
6006 * ace/Strategies_T.cpp:
6007 ACE_Process_Strategy declared two defaults constructors:
6008 ACE_Process_Strategy(void) and ACE_Process_Strategy(int = 1).
6009 The constructor code was wrong, it called open() with parameters:
6010 open(thr_mgr, thr_flags, n_threads)
6011 none of which were defined, worse, open() receives just one
6012 parameter (the number of processes) just as the constructor, I
6013 believe that C-w programming is lurking here.
6016 Though the header file does not declare ACE_Sig_Handlers under
6017 HP-UX (and the code is not defined too) some auxiliary functions
6018 that use ACE_Sig_Handlers were defined. I removed their
6020 Some day I'll try to take a look at the code, trying to find out
6021 was wrong with them.
6023 * ace/Stream_Modules.h:
6024 * ace/Stream_Modules.cpp:
6025 By mistake I commented out the ACE_ALLOC_HOOK_* macros; have to
6029 No need to include "ace/Module.h" since only the template
6030 declaration is used. When ACE_TEMPLATES_REQUIRE_SOURCE is defined
6031 you end up using ACE_Thru_Task before it gets defined.
6032 This is no problem unless your compiler checks template sintax
6033 before instantiation as the HP/aCC compiler do.
6035 * examples/Reactor/Misc/test_demuxing.cpp:
6036 ACE_MT_SYNCH was used, but it is only defined if ACE_HAS_THREADS,
6037 I used ACE_SYNCH instead, which is defined as ACE_MT_SYNCH if
6038 ACE_HAS_THREADS and as ACE_NULL_SYNCH if not.
6039 Maybe the semantics are wrong, but the thing compiles.
6041 Fri Mar 21 15:10:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
6043 * ace/Makefile (FILES): Moved Log_Msg to the beginning of the
6044 source list in the ace Makefile. This is nice because it forces
6045 the compilation of OS.i and that, obviously, is where you get
6046 the complaints for the port. It's nice to have it at the
6047 beginning so you catch the errors very early on before you've
6048 compiled 30 or 40 files. Thanks to Scott Halstead
6049 <scott.halstead@gs.com> for this suggestion.
6051 * ace/Memory_Pool.cpp: Added #if !defined
6052 (ACE_LACKS_SYSV_SHMEM) to handle systems like Chorus that
6055 Thu Mar 20 18:58:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
6057 * ace/Svc_Handler.cpp (destroy): Added a state variable to keep
6058 track of when we are closing down the Svc_Handler. This is
6059 necessary to prevent endless recursive calls to handle_close()
6060 due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks
6061 to Bert Craytor <Bert_Craytor@peoplesoft.com> for reporting
6064 * tests/Conn_Test.cpp: Added a new test that makes sure the
6065 Acceptor, Connector, and Svc_Handler are working correctly.
6067 * ace: Added some more changes for Chorus. Thanks to Wei Chiang
6068 <chiang@tele.nokia.fi> for these changes.
6070 * ace/OS.h: Added #define for SIGSEGV for platforms that lack it
6073 * ace: Made a bunch of minor changes to support SunOS 4.x better.
6074 Thanks to Scott Halstead <scott.halstead@gs.com> for reporting
6077 * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION
6078 for the various templates used in this test. Thanks to Thilo
6079 Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
6081 * ace/Connector.cpp (connector): Fixed some minor bugs that
6082 prevented the ACE_Connector from compiling. Thanks to David
6083 Levine for noticing this.
6085 * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will
6086 work on Win32. Thanks to Matthias Kerkhoff
6087 <make@cs.tu-berlin.de> for pointing this out.
6089 Thu Mar 20 22:38:27 1997 David L. Levine <levine@cs.wustl.edu>
6091 * ace/Timer_Heap.cpp: added template specializations.
6093 * netsvcs/lib/Client_Logging_Handler.cpp,
6095 Server_Logging_Handler.cpp
6096 TS_Clerk_Handler.cpp
6097 TS_Server_Handler.cpp
6098 Token_Handler.cpp: added template specializations.
6099 There are still many missing from libnetsvcs.
6101 * tests/Conn_Test.cpp,
6104 Map_Manager_Test.cpp
6105 Message_Block_Test.cpp
6106 Message_Queue_Test.cpp
6107 Reader_Writer_Test.cpp
6108 SV_Shared_Memory_Test.cpp
6109 Thread_Pool_Test.cpp}: added template specializations.
6110 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
6111 for providing these.
6113 * ace/Log_Msg.cpp: removed commented-out template specialization.
6115 * include/makeinclude/platform_{chorus,hpux,hpux_gcc}.GNU:
6116 split out CFLAGS and CCFLAGS from CC and CXX.
6118 * ace/config-aix-4.[12].x.h: added back ACE_HAS_THREAD_SELF and
6119 and ACE_HAS_SVR4_DYNAMIC_LINKING; removed ACE_HAS_PTHREAD_T.
6120 Thanks to Chris Lahey <CLahey@cccis.com> for figuring these out.
6122 Thu Mar 20 12:25:30 1997 <harrison@samba.cs.wustl.edu>
6124 * ace/ace.{mak,mdp}: Build->Settings->Code Generation->Processor is
6125 now set to "Pentium" instead of "Blend*" for Debug and Release
6128 * ace/config-win32-msvc4.x.h:
6129 * ace/config-win32-msvc2.0.h:
6130 * ace/config-winnt-4.0-msvc4.x.h: Only define ACE_HAS_PENTIUM when
6131 _M_IX86 == 500. Projects must specify Pentium in
6132 Build->Settings->Code Generation->Processor to use the RDTSC
6133 instruction in ACE_OS::gethrtime.
6135 * ace/High_Res_Timer.{cpp,i}: By default, High_Res_Timer is
6136 constructed with a scale_factor == 1. This allowed me to remove
6137 all the checks for scale_factor == 0 in the code.
6139 * ace/High_Res_Timer.h (static gettimeofday): If
6140 global_scale_factor_ is not set, and we're on a platform that
6141 requires global_scale_factor_ (e.g., Win32),
6142 ACE_OS::gettimeofday will be used instead of ACE_OS::gethrtime.
6143 This allows the scale_factor of 1 to still result in correct
6146 Wed Mar 19 15:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
6148 * ace: Added zillions of minor changes so that ACE will compile on
6149 the new aCC compiler for HPUX. Thanks to Gonzalo A. Diethelm
6150 <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
6153 * ace/SOCK_Dgram_Mcast.cpp (subscribe): In addition to the
6154 SO_REUSEADDR option, Irix has a SO_REUSEPORT option that must
6155 also be set to allow multiple sockets to bind to the same
6156 multicast address. Thanks to Robert V. Head <rhead@vtcs20a> for
6159 * ace: Added a slew of changes to support CHORUS. Thanks to
6160 Wei Chiang <chiang@tele.nokia.fi> for these changes.
6162 * ace/config-sunos4.*.h: Added #define ACE_HAS_UNION_WAIT based
6163 on the recommendation of Kumar Neelakantan
6164 <kneelaka@painewebber.com>.
6166 * ace/Log_Msg.cpp (log_hexdump): Replaced the use of ::sprintf()
6167 with ACE_OS::sprintf() so that the return value would be correct
6170 * ace/OS: Added ACE_HAS_CHARPTR_SPRINTF and ACE_SPRINTF_ADAPTER
6171 to ACE_OS::sprintf() for SunOS 4.x platforms. Thanks to Kumar
6172 Neelakantan <kneelaka@painewebber.com> for reporting this.
6174 * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): If the bound was
6175 reached in the following loop, we should set this->num_ =
6176 this->handles_.max_handle_ + 1 rather than go into the 2nd loop.
6177 Thanks to Michael Newton <michaeln@in.ot.com.au> for reporting
6180 * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator):
6181 ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator did not work
6182 properly if called with a zero handleset, as there was no bounds
6183 check on the first loop therein. Thanks to Michael Newton
6184 <michaeln@in.ot.com.au> for reporting this.
6186 Wed Mar 19 16:06:32 1997 David L. Levine <levine@cs.wustl.edu>
6188 * ace/OS.h,README: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER to wrap
6189 #include of sys/socket.h with #undef/#define of __cplusplus.
6191 * ace/config-aix-4.[12].x.h: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER,
6192 ACE_HAS_PTHREAD_T, ACE_LACKS_TCP_H, and ACE_LACKS_SETSCHED.
6193 Removed ACE_HAS_SVR4_DYNAMIC_LINKING and ACE_HAS_THREAD_SELF.
6195 Thanks to Daniel Montalibet <daniel_montalibet@stortek.com> for
6196 both of the above modifications.
6198 * platform_{dgux4_epc,irix5.3_g++,linux*,m88k,osf1_3.2,sco*,
6199 sunos4_g++,sunos5_centerline*,sunos5_g++,sunos5_sunc++*,
6200 unixware_g++,vxworks5.2_g++}.GNU: split out CFLAGS and CCFLAGS.
6201 Also, removed -lstdc++/-lm from g++ versions, because we now set
6202 CXX to g++ instead of gcc, so those libraries are picked up.
6204 * include/makeinclude/platform_osf1_4.0{,_g++}.GNU:
6205 added -lrt to support ACE_Sched_Params. Thanks to
6206 Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
6207 suggesting this. Also, split out CFLAGS and CCFLAGS.
6209 * ace/OS.h: removed SVR4_DYNAMIC_LINKING protection around
6210 #define of RTLD_LAZY because it's used in ace/Parse_Node.cpp.
6211 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
6214 * ace/OS.i (thr_setcanceltype): added ACE_UNUSED_ARGS for STHREADS
6215 case. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
6218 Tue Mar 18 21:53:03 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
6220 * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Modified the
6221 SOCK_Dgram_Bcast class by adding a const char *host_name to the
6222 contructor, and open, and mk_broadcast methods. If the user
6223 passes in the host_name, then only the broadcast address of an
6224 interface that has a matching ip address with the host will be
6225 added to the if_list_. Otherwise, nothing changes. Thanks to
6226 Paul <phan@CCGATE.HAC.COM> for this feature.
6228 Tue Mar 18 13:20:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6230 * ace/ace.mdp: Reverted the change for DllMain as the entry point
6231 to ace.dll. This is causing problems in multi-threaded
6234 * netsvcs/lib/Client_Logging_Handler.cpp: Added a check in fini()
6235 to make sure we have a valid handler. If the connect attempt
6236 failed, this->handler_ will be set to 0.
6238 * tests/Mem_Map_Test.cpp: Added code that removes all temporary
6239 files created by the test.
6241 * tests/Time_Service_Test.cpp: Made sure we remove the backing
6242 store file left behind by a aborted clerk process.
6244 * examples/Reactor/Ntalker/ntalker.cpp: The ntalker now uses
6245 ACE::register_stdin_handler to register the STDIN. This function
6246 allows for portability.
6248 Tue Mar 18 08:12:22 1997 David L. Levine <levine@cs.wustl.edu>
6250 * ace/Svc_Conf_y.cpp,Makefile: replaced "y.tab.c" string with
6251 "Svc_Conf_y.cpp" to ease debugging. Thanks to Luca Priorelli
6252 <lucapri@mbox.vol.it> for suggesting this.
6254 * ace/IOStream.cpp (close): replaced call to
6255 ACE_SOCK_Stream::close () with one to generic STREAM::close ().
6256 Thanks to Kumar Neelakantan <kneelaka@painewebber.com> for
6257 reporting this problem.
6259 * ace/OS.h,README,config-*.h: removed ACE_HAS_RTLD_LAZY_V, and
6260 replaced with #define of RTLD_LAZY macro only if it's not
6261 already defined (and if ACE_HAS_SVR4_DYNAMIC_LINKING is defined).
6262 Thanks to Chris Lahey <CLahey@cccis.com> for providing this fix.
6264 * ace/OS.i (thr_setcancelstate, thr_setcanceltype, thr_cancel):
6265 added ACE_UNUSED_ARG calls to avoid compiler warnings. Thanks
6266 to Chuck Gehr <gehr@sweng.stortek.com> for suggesting them.
6268 * ace/Local_Name_Space_T.h: moved #include of Local_Name_Space.h up
6269 because this file needs declaration of ACE_NS_String. There
6270 _shouldn't_ be a circular include problem because the #includes are
6271 protected. Thanks to Daniel Montalibet
6272 <daniel_montalibet@stortek.com> for reporting this problem and
6275 * ace/Local_Name_Space.h: removed #include of ace/Service_Config.h.
6277 * include/makeinclude/wrapper_macros.GNU: put -I. before
6278 -I$(WRAPPER_ROOT) instead of after.
6280 * tests/IOStream_test.cpp: added checks for receipt of proper values.
6282 Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6284 * ace/ace.mdp: Add DllMain as the entry point of ace.dll. This
6285 allows us to call WSAStartup when ace.dll is loaded in and
6286 WSACleanup when ace.dll is unloaded. People using ace as a
6287 static library are still out in the cold with respect of getting
6288 WSACleanup called before the process exits.
6290 I am not sure of two cases: (1) What happens when an application
6291 crashes and was not able to call WSACleanup and (2) if the
6292 application wants to continue using sockets when ace.dll is
6293 unloaded. I hope this solves more problems than it creates ;-)
6295 Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6297 * ace/Parse_Node.cpp: Added END_OF_LINE characters to some
6300 * netsvcs/{lib,servers}: Fixed the project files to produce and
6301 use the dll in the correct place (which is netsvcs/lib).
6303 * ace/Log_Record.cpp: Corrected format string for fprintf().
6305 * examples/Threads/test.mdp: Added context_switch_time.cpp to the
6308 All of the above bugs were reported by Luca Priorelli
6309 <lucapri@mbox.vol.it>. Thanks for the contribution.
6311 Mon Mar 17 12:59:56 1997 David L. Levine <levine@cs.wustl.edu>
6313 * ace/OS.{h,i}: added nanosleep (), currently supported only
6314 on POSIX platforms (if ACE_HAS_CLOCK_GETTIME is defined).
6316 * examples/Mem_Map/IO-tests/{IO_Test.cpp,test_io.cpp):
6317 LM_ERROR instead of ACE_ERROR, and fixed call to ACE::basename ().
6319 * ace/OS.cpp (sched_params): return -1 if not supported,
6322 * ace/OS.cpp (fork): added ACE_UNUSED_ARG (program_name) for WIN32
6325 * ace/Sched_Params.cpp (priority_min, priority_max, next_priority,
6326 previous_priority): not supported on MVS, via ACE_LACKS_SETSCHED.
6327 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for figuring this
6328 out and providing the fix.
6330 * tests/Timer_Queue_Test.cpp (test_performance): changed type of
6331 local variable "i" to (signed) int to avoid signed/unsigned
6332 comparison, and eventual seg fault because a loop would never
6335 Sun Mar 16 11:31:46 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6337 * ace/Timer_{List,Queue,Heap}.h: Defined copy constructors and
6338 assignment operators in the private part of the class so that
6339 users won't accidentally make mistakes.
6341 Sat Mar 15 21:44:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6343 * ace/Timer_{Queue,List}.cpp (cancel): handle_close() should be
6344 called only once (especially when handle_close() implements
6345 "delete this;" ). Since it is possible that the EH will be
6346 registered more than once, I changed the code to do the
6349 if (number_of_cancellations == 1)
6350 // Call the close hook.
6351 curr->handler_->handle_close (ACE_INVALID_HANDLE,
6352 ACE_Event_Handler::TIMER_MASK);
6354 Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com> for
6357 * examples/Mem_Map/IO-tests/test_io.cpp (run_tests): Removed all
6358 uses of ::perror and replaced them with calls to ACE_ERROR
6361 * ace/Mem_Map.i (unmap): The ACE_Mem_Map::close method does not
6362 work properly if the value of file_mapping_ is equal to
6363 ACE_INVALID_HANDLE. In this case the method calls a useless
6364 close (-1). Therefore, I changed:
6366 if (this->file_mapping_ != this->handle_)
6367 ACE_OS::close (this->file_mapping_);
6371 if (this->file_mapping_ != this->handle_ &&
6372 this->file_mapping_ != ACE_INVALID_HANDLE)
6373 ACE_OS::close (this->file_mapping_);
6375 Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
6378 Thu Mar 13 18:21:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6380 * ace/ReactorEx.h: Change protection of methods/variables of
6381 ReactorEx from private to protected. Thanks to Matthias Kerkhoff
6382 <make@cs.tu-berlin.de> for suggesting this.
6384 Thu Mar 13 16:31:54 1997 David L. Levine <levine@cs.wustl.edu>
6386 * ace/OS.i (thr_getprio): Added missing ACE_NOTSUP_RETURN
6387 for the case of pthreads && !defined (ACE_LACKS_SETSCHED).
6388 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
6391 Thu Mar 13 00:12:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6393 * ace/Local_Name_Space_T.cpp (dump): Added ACE_UNUSED_ARG around
6394 fake_this to stop the compiler from complaining about unused
6397 * ace/Message_Block.cpp (ACE_Data_Block::size): Moved the copying
6398 of the old base before freeing it up. Thanks to Dieter Quehl
6399 (dietrich.quehl@med.siemens.de) for pointing this out.
6401 * ace/Local_Name_Space_T.cpp: Added code to the list methods such
6402 that structured exceptions are handled correctly. Thanks to
6403 Karlheinz Dorn (karlheinz.dorn@med.siemens.de) for reporting
6406 Wed Mar 12 21:31:51 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6408 * examples/Reactor/Ntalker/ntalker.cpp: Made changes to the
6409 program which allows it to run under Win32.
6411 * ace/SOCK_Dgram_Mcast.cpp: Made changes to the setting of the
6412 interface address so that it works correctly under Win32.
6413 Thanks to Todd L. Montgomery (tmont@cs.wvu.edu), Anton van
6414 Straaten (anton@appsolutions.com), Ole O. Johnsen
6415 (Ole.Johnsen@gpi.telemax.no), Mike Flinn
6416 (mike.flinn@smtpgate.aws.waii.com), Steve Weismuller
6417 (spweismu@rsoc.rockwell.com) and others who helped out.
6419 Wed Mar 12 17:05:52 1997 Chris Cleeland <cleeland@cs.wustl.edu>
6421 * ace/config-linux-lxpthreads.h: Added ACE_HAS_IP_MULTICAST.
6423 Wed Mar 12 16:07:07 1997 David L. Levine <levine@cs.wustl.edu>
6425 * ace/OS.i (gethrtime): Added support for VxWorks and
6426 other platforms that support ACE_HAS_CLOCK_GETTIME.
6428 Tue Mar 11 21:38:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6430 * ace/OS.i (open): Improved support for passing flags through to
6433 Tue Mar 11 14:30:12 1997 David L. Levine <levine@cs.wustl.edu>
6435 * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SYS_NERR.
6436 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
6439 * ace/OS.{i,cpp} (uname, hostname): added VxWorks support.
6440 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
6441 providing this. (Also, uninlined ACE_OS::uname on WIN32
6442 and VxWorks because it contains string literals.)
6444 * ace/High_Res_Timer.{i,cpp}: fixed interpretation of units:
6445 ACE_hrtime_t is in nanoseconds, so it should be divided by
6446 1000000000 to get seconds. Fixed divs/mods to first divide
6447 by 1000, then div/mod. Thanks to Luca Priorelli
6448 <lucapri@mbox.vol.it> for identifying this problem.
6450 Also, removed some casts that are no longer necessary, and
6451 added some casts of ACE_hrtime_t values to longs to avoid
6452 compiler warnings. Thanks to Matthias Kerkhoff
6453 <make@cs.tu-berlin.de> for pointing this out.
6455 * ace/Reactor.cpp (unbind): cast "index" to int to avoid
6456 signed/unsigned comparison. Thanks to Matthias Kerkhoff
6457 <make@cs.tu-berlin.de> for pointing this out.
6459 * ace/ReactorEx.cpp (bind): changed type of "current_size" to
6460 size_t to avoid signed/unsigned comparison. Thanks to Matthias
6461 Kerkhoff <make@cs.tu-berlin.de> for pointing this out.
6463 * ace/Timer_Heap.cpp (ctor, grow_heap): cast unsigned value
6464 (i + 1) to int before negating to avoid compiler warning.
6465 Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
6468 * examples/Threads/context_switch_time.cpp (main): added
6469 ACE_SCOPE_PROCESS param to ACE_Sched_Params instances so
6470 that the test works on WIN32. Thanks to Luca Priorelli
6471 <lucapri@mbox.vol.it> for identifying this problem.
6473 * ace/Registry.{h,cpp},Registry_Name_Space.{h,cpp},Svc_Conf_Tokens.h,
6474 Svc_Conf_{l,y}.cpp,Timer_{Heap,List}.cpp,config-aix-4.2.x.h,
6475 config-dgux-4.11-epc.h,config-mvs.h,config-sco-5.0.0-fsu-pthread.h,
6476 config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0-nothread.h:
6477 added CVS header (Id wrapped in $).
6479 * netsvcs/clients/Logger/indirect_logging.cpp (main): declare loop
6480 index as signed int to avoid signed/unsigned comparison.
6482 Tue Mar 11 07:34:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6484 * tests/Timer_Queue_Test.cpp: Added some code to illustrate how
6485 the new handle_close() hook for ACE_Timer_{Heap,List} work.
6487 * ace/Timer_Heap.cpp (cancel): Modified the Timer_Heap and
6488 Timer_Queue so that it will call the handle_close() hook when
6489 Event_Handler's are cancelled. This is necessary to reclaim
6490 resources. Thanks to Hamutal Yanay
6491 <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
6493 * ace/Event_Handler.h (signal): Added a TIMER_MASK, which is
6494 passed to handle_close() when a timer is cancelled.
6496 * ace/Log_Msg.cpp (log): Fixed a bug by setting LPTSTR lpMsgBuf =
6497 0 on line 524. Thanks to Mark Wright <markw@odi.com.au> for
6500 Sun Mar 10 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6502 * examples/Mem_Map/IO-tests: Fixed a small bug in "IO_Test.cpp"
6503 file. In the "int Mmap1_Test::run_test" method I inserted an
6504 lseek to rewind the output file. With this correction the speed
6505 go up due to IO cache. Thanks to Sandro Doro
6506 <alex@aureus.sublink.org> for reporting this.
6508 Sun Mar 9 18:24:37 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
6510 * java/src/IOCntlMsg.java (IOCntlMsg): Added two new
6511 classes/files, namely IOCntlCmds and IOCntlMsg.
6513 * java/src/Task.java: Added accessors to get/set the flags of the
6516 Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6518 * ace/Reactor: Fixed an evil bug where the expression
6520 if (handle >= 0 || handle < this->max_handlep1_)
6524 if (handle >= 0 && handle < this->max_handlep1_)
6526 Thanks to Mark Wright <markw@odi.com.au> for reporting this.
6528 Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6530 * apps/Gateway: Updated the Peer and Gateway applications so that
6531 they don't try to register ACE_STDIN with the Reactor on Win32.
6533 * apps/Gateway: Changed a bunch of calls to
6534 ACE_Reactor::remove_handler() so that it no longer tries to
6535 remove descriptor 0, but instead uses ACE_STDIN. Naturally,
6536 this doesn't work due to the way that Win32 implements select()
6537 but at least it compiles... Thanks to Elliot Lau
6538 <eeklau@post1.com> for reporting this.
6540 * apps/Gateway/Gateway/File_Parser: Changed the enumerated type
6541 ERROR to PARSE_ERROR to avoid a name clash with a symbol
6542 reserved by Win32 (barf). Thanks to Elliot Lau
6543 <eeklau@post1.com> for reporting this.
6545 Sat Mar 8 12:37:44 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6547 * ace/Log_Msg.cpp: Changed the implementation of ACE_Log_Msg so
6548 that all accesses to the lock_ are now through a Singleton.
6549 This makes it possible to define multiple instances of
6550 ACE_Log_Msg within the same thread. Thanks to Jeff Morgan
6551 <jeff@audioactive.com> for helping track this down.
6553 * Added support for SCO 5.0. Thanks to Auturo
6554 <mitosys@colomsat.net.co> for these patches.
6556 Thu Mar 06 13:24:04 1997 David L. Levine <levine@cs.wustl.edu>
6558 * ace/OS.i (gettimeofday): moved declaration of "result" so
6559 that it's not declared on VxWorks, where it's not needed;
6560 (stat): added cast of file arg to char * for VxWorks;
6561 (thr_getprio): added missing "#else" before ACE_NOTSUP_RETURN (-1).
6562 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
6565 * ace/OS.cpp (sched_param): with STHREADS, map ACE_SCOPE_THREAD
6566 to ACE_SCOPE_PROCESS'.
6568 * ace/Svc_Conf_l.cpp: commented out YY_BREAK after ace_yyterminate ()
6569 to avoid GHS compiler warning about unreachable statement.
6570 Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
6573 * ace/ace.mak: removed Thread_Priority and renamed Scheduling_Params
6576 * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
6577 added "l" qualifier for sprintf of ACE_OS::getpid ().
6579 * tests/Priority_Task_Test.cpp,
6580 examples/Threads/{context_switch_time.cpp,Makefile}:
6581 adapted to new thread priority/ACE_Sched_Params.
6583 Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6585 * ace/UNIX_Addr.cpp: Enhanced the implementation of set() so
6586 that it works correctly on MVS, which has a different definition
6587 of struct sockaddr_un:
6589 struct sockaddr_un {
6590 unsigned char sun_len;
6591 unsigned char sun_family;
6595 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
6598 Wed Mar 05 14:47:14 1997 David L. Levine <levine@cs.wustl.edu>
6600 * ace/OS.{h,cpp},Makefile; also, renamed Scheduling_Params.* to
6601 Sched_Params.* and removed Thread_Priority.*:
6603 Major change in scheduling parameters interface:
6604 The key change is that there is no longer a special thread priority
6605 enum. Thread_Priority was changed to int, so applications can do
6606 whatever they want. The ACE_Sched_Params class has some static
6607 functions to help do this portably.
6609 Here are the changes from the ACE 4.1.3:
6611 1) ACE_Thread_Priority: removed this class.
6613 It contained "priority class" and "thread priority".
6614 "Priority class" is platform-specific and doesn't
6615 need to be visible in ACE; it is subsumed by scheduling policy,
6616 see below. "Thread priority" is replaced by the global
6617 ACE_Sched_Priority typedef in ace/OS.h, see next change.
6619 2) ace/OS.h: added ACE_Sched_Priority typedef (to int)
6620 and ACE_SCOPE_THREAD.
6622 3) ace/OS.h: added scheduling policy #defines: ACE_SCHED_OTHER,
6623 ACE_SCHED_FIFO, and ACE_SCHED_RR. There's an ACE_Sched_Params::
6624 Policy typedef that can take one of these values.
6626 4) ACE_Sched_Params: added priority_min (), priority_max (),
6627 next_priority (), and previous_priority () functions. All
6628 require an ACE_Sched_Params::Policy argument and take an
6629 optional scope argument (to support the distinct thread
6630 and process priorities on DEC UNIX).
6632 min_priority () and max_priority () have platform-specific
6633 and policy-specific values, and direction (the min value may
6634 be higher than the max value). The increment and decrement
6635 operations allow applications to iterate over them, etc.,
6636 without explicitly specifying the direction of the priority
6637 (0 for high or low priority).
6639 5) The only way to apply ACE_Sched_Params is through
6640 ACE_OS::sched_params (const ACE_Sched_Params &).
6641 (This is not really a change, except for the name change from
6642 ACE_OS::set_sched_params ().
6644 It sets both policy and priority of current thread or
6645 process (depending on the scope in ACE_Sched_Params).
6646 Not all combinations of policy, priority, and scope are
6647 legal on all platforms. Unfortunately, I see no way around
6648 this, because the intersection of legal ranges
6649 on our supported platforms is empty. If an illegal request
6650 is made, ACE_OS::sched_params () sets errno to EINVAL and
6653 6) added ACE_OS::thr_setprio (const ACE_Sched_Priority prio)
6654 to set the current thread's priority, only.
6656 Many thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
6657 for his careful review of this class design, thoughtful comments,
6658 and assistance with implementation, especially for PTHREADS
6661 Wed Mar 5 14:36:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6663 * SString.cpp: Fixed ACE*String initialization bugs. Thanks to
6664 jmorey@tbi.com (John Morey) for reporting this.
6666 Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6668 * ace/OS.i: Fixed a bug in gethrtime
6670 const ACE_Time_Value now = ACE_OS::gettimeofday (void);
6674 const ACE_Time_Value now = ACE_OS::gettimeofday ();
6676 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
6679 Tue Mar 4 16:37:26 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6681 * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (main): Make life
6682 easier by doing an unlink(rendezvous) before reopening the
6683 UNIX-domain socket. Thanks to Jeff Morgan
6684 <jeff@audioactive.com> for suggesting this.
6686 Sun Mar 02 19:58:00 1997 David L. Levine <levine@cs.wustl.edu>
6688 * ace/config*.h: removed #define of ACE_HAS_INLINED_OSCALLS
6689 because it's no longer needed in the config files: it's
6690 #defined in OS.h if needed.
6692 Sun Mar 2 17:14:29 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6694 * include/makeinclude: Updated all the platform-*g++.GNU files so
6695 that they no longer -D__ACE_INLINE__ (since this is handled in
6696 the the config-*g++.h files).
6698 * ace: Updated all the config-*g++.h files so that they now
6699 #define __ACE_INLINE__ rather than having this set in the
6700 platform_*.GNU file. This makes ACE easier to build and
6701 integrate with other software packages.
6703 Fri Feb 28 02:22:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6705 * ace/SOCK_*: There were problems starting UDP broadcast servers
6706 (all using the same well known port number) multiple times on
6707 one machine (this is very useful test distributed applications
6708 on one single machine). Setting the SO_REUSEADDR option for the
6709 broadcast socket allows binding of a socket that is already in
6710 use and thus allows us to start more than one broadcast servers
6711 in parallel on one machine. Thanks to Dieter Quehl
6712 <dietrich.quehl@med.siemens.de> for this fix.
6714 Therefore, I patched ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram and
6715 ACE_SOCK to include this feature. In addition, I also changed
6716 ACE_SOCK_Connector/ACE_SOCK_Acceptor to use this feature instead
6717 of calling setsockopt() there explicitly.
6719 * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (main): Fixed up the
6720 use of ACE_OS::fork() here to use the new "named" version.
6722 * ace/OS.h: Added a clever new wrapper function called fork (const
6723 char *program_name), which calls fork() and then automatically
6724 calls ACE_LOG_MSG->sync (program_name) to sync up the program
6725 name. This eliminates a common source of error when forking
6726 children and using ACE_Log_Msg::log().
6728 * examples/IPC_SAP/SOCK_SAP/FD-un{client,server}.cpp: Updated the
6729 FD client and FD server programs so that it is now a concurrent
6732 * ace/config-mvs.h: Added #define ACE_LACKS_TCP_H for MVS. Thanks
6733 to Chuck Gehr for pointing this out.
6735 * ace/OS.h: Added a new #define ACE_LACKS_TCP_H that skips the
6736 inclusion of the netinet/tcp.h file if it isn't on the platform.
6738 * ace/OS.i (thr_cancel): Changed the line
6740 ACE_UNUSED_ARG (t_id);
6744 ACE_UNUSED_ARG (thr_id);
6746 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
6749 * ace/SString.cpp: Fixed up all the ACE_[CSW]String code so that
6750 always allocates a rep_ even in the null constructor. This
6751 saves us from having to handle odd special cases later on...
6752 Thanks to John Morey <JMOREY@tbi.com> for reporting this.
6754 * ace/Service_Repository.cpp (close): Changed the order in which
6755 services are destroyed when the Service Configurator is closed.
6756 Currently, services are destroyed in the order in which they are
6757 created according to the svc.conf file. Now, we shut them down
6758 in reverse order. This makes more sense when services are
6759 related, i.e., one service has to be started before another.
6760 Thanks to Karlheinz for this suggestion.
6762 Fri Feb 28 12:13:09 1997 David L. Levine <levine@cs.wustl.edu>
6764 * ace/OS.h: fixed definition of ACE_TIMER_SKEW. Thanks
6765 to Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
6767 Thu Feb 27 21:36:28 1997 David L. Levine <levine@cs.wustl.edu>
6769 * ace/OS.{i,cpp} (gethrtime): support on all platforms by
6770 using ACE_OS::gettimeofday () if there is no native high
6771 resolution timer. Moved ACE_OS::getimeofday () definition
6772 toward top of OS.i so that it is always defined before
6773 being called. Finally, expanded gethrtime () support from
6774 linux to __GNUC__ with ACE_HAS_PENTIUM; it should work on
6775 platforms such as VxWorks with gcc on Pentiums.
6777 * ace/config-osf1-4.0-{,g++}.h: added ACE_HAS_CLOCK_GETTIME.
6778 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
6779 for pointing this out.
6781 Thu Feb 27 17:06:12 1997 <harrison@samba.cs.wustl.edu>
6783 * ace/High_Res_Timer.h (get_env_global_scale_factor): This static
6784 method will set the global_scale_factor to the value in an
6785 environment variable (ACE_SCALE_FACTOR by default).
6787 * ace/High_Res_Timer.*: Changed all calculations to divide by
6788 scale_factor before doing / and %. This must be done before the
6789 mod for correctness.
6791 * ace/Profile_Timer.i (start): Changed start and stop methods to
6792 call ACE_High_Res_Timer::gettimeofday. This should allow
6793 greater timing accurracy.
6795 * ace/High_Res_Timer.h (global_scale_factor): Added a static
6796 global_scale_factor that allows applications to set one scale
6797 factor for all high res timers. This is important for platforms
6798 like intel where the scale factor will vary based on the
6799 processor clock speed.
6801 * ace/High_Res_Timer.i (gettimeofday): This static method calls
6802 ACE_OS::gethrtime and converts to an ACE_Time_Value based on the
6803 global_static_factor.
6805 Wed Feb 26 18:28:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6807 * ACE-install.sh: Added some fixes for the ACE-install.sh script.
6808 Thanks to Eugene R. Somdahl <gene@endo.com> for reporting these.
6810 * ace/Connector.cpp (handle_close): Added a test to see if the
6811 reactor_ is NULL and if it is, don't bother trying to use it to
6812 clean up. Thanks to Paul Han <phan@CCGATE.HAC.COM> for this
6815 Tue Feb 25 21:19:57 1997 David L. Levine <levine@cs.wustl.edu>
6817 * ace/OS.h,config-sunos*.h: default ACE_TIMER_SKEW to 0,
6818 and override to 10 ms in all Solaris config files.
6820 * ace/Svc_Conf_l.cpp,Makefile: #undef ACE_HAS_TERM_IOCTLS
6821 so that /usr/include/sys/termios.h won't be included; it
6822 #defines ECHO, and Svc_Conf_l.cpp has an ECHO symbol.
6824 * ace/ACE.cpp (sock_error): added ACE_UNUSED_ARG (error);.
6826 * ace/Timer_Queue.cpp (ctor): rearranged initializers to
6827 match declaration order.
6829 Tue Feb 25 19:57:54 1997 <harrison@samba.cs.wustl.edu>
6831 * ace/Timer_Queue.cpp (gettimeofday): Added gettimeofday accessors
6832 on the Timer_Queue. The default implementation calls
6833 ACE_OS::gettimeofday. Applications can specify, via pointers to
6834 functions, that a timer queue use an alternate gettimeofday
6835 implementation (e.g., a high resolution timer).
6837 * ace/Reactor.cpp (schedule_timer): The Reactor no longer calls
6838 ACE_OS::gettimeofday. Instead, it calls
6839 Timer_Queue::gettimeofday.
6841 * ace/ReactorEx.cpp (schedule_timer): The ReactorEx no longer calls
6842 ACE_OS::gettimeofday. Instead, it calls
6843 Timer_Queue::gettimeofday.
6845 Tue Feb 25 17:40:57 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
6847 * ace/Log_Msg.cpp: Updated the 'p' option of the log() method to
6848 use the new ACE::sock_error() method for cases where
6849 FormatMessage() fails.
6851 * ace/ACE: Added a new sock_error() method to class ACE which
6852 returns the appropriate message for each WinSock error code.
6853 This makes up for an apparent oversight in Win32. Thanks to
6854 Michael R. MacFaden" <mrm@cisco.com> for this.
6856 Tue Feb 25 01:33:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6858 * ace/OS.h: Moved <netinet/tcp.h> outside of the VXWORKS #ifdef
6859 since it seems to be available on other platforms (e.g.,
6860 Solaris). If people find this not to be the case on all
6861 platforms please let me know and I'll #ifdef it. Thanks to
6862 Sumedh Mungee <sumedh@cs.wustl.edu> for reporting this.
6864 Tue Feb 25 16:20:29 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
6866 * examples/Connection/non_blocking/CPP-acceptor.cpp: Added a
6867 specific checl for timeouts. Also, changed
6868 ACE_PEER_ACCEPTOR_ADDR to ACE_PEER_STREAM_ADDR
6870 * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New
6871 project files for Win32.
6873 * ace/Log_Msg.cpp: Minor changes.
6875 Mon Feb 24 17:16:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6877 * ace/Log_Msg.cpp (ACE_Log_Msg): Enable the thread-specific
6878 tracing flag by default. This ensures that tracing will work
6881 * ace/config-sunos5.[45]-g++.h: Added a #define for
6882 ACE_HAS_TERM_IOCTLS. Thanks to Joey Zhu <joey.zhu@wcom.com> for
6885 * ace/Synch.cpp (acquire): Simplified the recursive mutex logic
6886 for acquire(). Thanks to Arthur J. Lewis" <hfdh99a@prodigy.com>
6889 * examples/Connection/non_blocking/CPP-acceptor.cpp (init): Added
6890 a #ifdef for ACE_WIN32 so that we don't register the signal
6891 handler for SIGPIPE since it's not supported on Win32. Thanks
6892 to Ivan Murphy <Ivan.Murphy@med.siemens.de> for reporting this
6895 * examples/Connection/non_blocking: The SPIPE examples in
6896 (test_spipe_{acceptor,connector}.cpp) aren't ported to Win32
6897 yet. They currently don't work because ACE_SPIPE*'s can't be
6898 registered with the ACE_Reactor (which only works with sockets).
6899 I've #ifdef'd these examples so that they don't get compiled on
6900 Win32. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for
6901 reporting this problem.
6903 Mon Feb 24 20:28:10 1997 David L. Levine <levine@cs.wustl.edu>
6905 * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++
6906 won't convert unsigned __int64 to double. Thanks to Irfan
6907 <irfan@cs.wustl.edu> for reporting this.
6909 * include/makeinclude/platform_{irix5.3_g++,linux*,m88k,
6910 osf1_4.0_g++,sco-nothread,sunos*g++,unixware_g++}.GNU:
6911 changed C++ compiler (CXX) from gcc to g++ so that libg++
6912 will be linked in. Thanks to James CE Johnson <jcej@lads.com>
6913 for suggesting this.
6915 * examples/IOStream/{client,server}/Makefile,tests/Makefile:
6916 removed -lg++, when gcc is the compiler, because it's no
6917 longer needed with g++ as the compiler.
6919 Sat Feb 22 23:03:45 1997 David L. Levine <levine@cs.wustl.edu>
6921 * ace/OS.i: restored version 4.89 and 4.90 changes that
6922 were lost in version 4.91.
6924 * ace/OS.{i,cpp},config-linux*.h: added ACE_OS::gethrtime ()
6925 support for Linux on Pentiums.
6927 * ace/High_Res_Timer.*: changed scale_factor type from
6928 u_long to double so that it can be less than 1.
6930 * ace/Thread_Priority.cpp: "linux" instead of "LINUX".
6932 * tests/Priority_Task_Test.cpp (open): set this->priority_ because
6933 an assertion uses it. Also, use ACE_NORMAL_PRIORITY_CLASS so that
6934 root doesn't have to run the test on Solaris.
6936 Sat Feb 22 22:07:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
6938 * tests/Priority_Task_Test.cpp (open): Now use
6939 ACE_Thread_Priority while setting the priority of the new
6942 * ace/Thread_Priority.cpp (convert_to_os_priority): Changed
6943 return type for this to 'int' from 'long' on Linux. Thanks
6944 to James CE Johnson <jjohnson@lads.com> for pointing this
6947 * ace/OS.i (thr_cancel): Corrected erroneous macro argument.
6948 Thanks to James CE Johnson <jjohnson@lads.com> for pointing
6951 Sat Feb 22 17:00:59 1997 <harrison@samba.cs.wustl.edu>
6953 * ace/OS.i (gethrtime): Added support for intel's RDTSC
6954 instruction for pentium architectures.
6956 Sat Feb 22 10:57:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6958 * ace/Stream.cpp (open): Make sure that if we allocate the Tasks
6959 in the Stream head and the Stream tail that we set the M_DELETE
6960 flag so that the close() method will clean up the memory.
6961 Thanks to David Levine and Purify for noticing this problem.
6963 Fri Feb 21 08:06:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
6965 * ace/OS.i: Yikes, it looks like the Solaris and the POSIX version
6966 of sigwait() are different! The Solaris version returns the
6967 signal number, whereas the POSIX version returns 0 on success,
6968 errno on failure, and sets a parameter with the signal on
6969 success. I've fixed the ACE_OS C++ wrapper so that the right
6970 thing happens, i.e., errno is always set to the error (if
6971 sigwait() returns -1) and the signum is always returned as the
6972 argument and the return value on success ... Thanks to Harry
6973 Gunnarsson <hg@carmenta.se> for reporting this.
6975 Fri Feb 21 11:01:22 1997 David L. Levine <levine@cs.wustl.edu>
6977 * ace/Thread_Priority.cpp: fixed return type of
6978 convert_to_os_priority () for Linux. Thanks to
6979 James CE Johnson <jcej@lads.com> for pointing this out.
6981 * examples/Shared_Malloc/test_malloc.cpp,
6982 examples/System_V_IPC/SV_Message_Queues/{T,}MQ_Server.cpp (main):
6983 added ACE_UNUSED_ARG (sa);.
6985 Fri Feb 21 04:12:31 1997 <irfan@TWOSTEP>
6987 * ace/OS.h: Added ACE_SEH_FINALLY.
6989 * ace/ReactorEx.h: Added ACE_ReactorEx_Test as a friend class. I
6990 think we should have one such friend class for all classes in
6993 * examples/Reactor/ReactorEx/test_exceptions.cpp: New test which
6994 checks how ReactorEx deals with structured exceptions thrown by
6997 * ace/ReactorEx.cpp (safe_dispatch): Added protection against
6998 structured exceptions caused by user code when dispatching
7001 Thu Feb 20 17:32:54 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
7003 * apps/Gateway: Added a new -v flag to the peerd and gatewayd
7004 applications so that they will print out the strings that are
7005 passed to them. This makes it easier to debug and see what's
7008 Wed Feb 19 19:39:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7010 * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp (recv): Removed
7011 the VERBOSE #ifdefs since they weren't used and were causing
7012 compile errors. Thanks to Bert Craytor
7013 <Bert_Craytor@peoplesoft.com> for reporting this.
7015 Wed Feb 19 00:39:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
7017 * examples/ASX/Event_Server: Updated the README file a bit to
7018 clarify some loose ends. The documentation now explains
7019 precisely how to start up the transceivers correctly. Thanks to
7020 Patty Genuald <genualdp@agcs.com> for suggesting this.
7022 * include/makeinclude: Removed the default symlink for
7023 platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to
7024 Amos Shapira <amos@dsi.co.il> for reporting this.
7026 Wed Feb 19 14:41:18 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
7028 * ace/Reactor.cpp: Modified to use timer_queue_->gettimeofday().
7030 * ace/Proactor.cpp: Modified to use timer_queue_->gettimeofday().
7032 * ace/ReactorEx.cpp: Modified to use
7033 timer_queue_->gettimeofday(). Also had to modify the
7034 ReactorEx_Notify mechanism to use the ReactorEx's timer queue to
7037 * ace/Timer_Queue.h: Added a gettimeofday method. This allows
7038 applications to replace the timer mechanism used by the
7039 Reactors. The default implementation returns
7040 ACE_OS::gettimeofday. However, a real-time application can
7041 inherit from Timer_Queue and override gettimeofday to return a
7042 value from a high resolution timer.
7044 * STL/bool.h: Changed the defines for type bool. First, bool is no
7045 longer defined for WIN32 since yvals.h typedefs it already.
7046 Also, I moved the defines out the namespace. I'm not sure if
7047 that's the right thing to do.
7049 Tue Feb 18 16:41:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
7051 * include/makeinclude: Added minor enhancements to rules.local.GNU
7052 and wrapper_macros.GNU so that it works with MVS. Thanks to
7053 Chuck Gehr <gehr@sweng.stortek.com> for this.
7055 * include/makeinclude: Added a new platform_mvs.GNU file that
7056 supports builds on MVS! Thanks to Chuck Gehr
7057 <gehr@sweng.stortek.com> for this.
7059 * tests/TSS_Test.cpp (worker): To get TSS_Test.cpp to compile on
7060 MVS we changed line 69 from:
7062 ACE_thread_key_t key = 0;
7066 ACE_thread_key_t key = ACE_OS::NULL_key;
7074 key = ACE_OS::NULL_key;
7076 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
7079 * ace/Reactor.cpp (dispatch): Fixed the dispatching logic so that
7080 we bail out as soon as we discover that our state has changed.
7081 Thus, we'll recompute the fd_sets used for select().
7083 Tue Feb 18 19:02:53 1997 <irfan@cha-cha.cs.wustl.edu>
7087 (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay
7088 <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
7090 (b) Change closed_for_business_ to open_for_business_. Also made
7091 sure that open and close can potentially be called multiple
7092 times from multiple threads.
7094 (c) Changed unbind and unbind_all such that they iterate through
7097 (d) Added a check to see if the handle has been scheduled for
7098 deletion before dispatching it.
7100 Tue Feb 18 21:24:57 1997 David L. Levine <levine@cs.wustl.edu>
7102 * ace/IOStream.h,README: replaced ACE_WIN32 conditional with
7103 ACE_LACKS_IOSTREAM_FX.
7105 * ace/config-{mvs,win*}.h: added #define ACE_LACKS_IOSTREAM_FX.
7106 Thanks to Chuck Gehr <gehr@sweng.stortek.com> for pointing
7107 out the need for this support for MVS.
7109 * examples/Reactor/Misc/test_demuxing.cpp: removed unused
7112 * examples/Reactor/Misc/test_signals_1.cpp (main),
7113 examples/Reactor/Ntalker/ntalker.cpp (main):
7114 added ACE_UNUSED_ARG (sig);.
7116 Tue Feb 18 17:15:24 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
7118 * ace/ace.mdp, ace/mak: Modified release configuration to build
7121 Tue Feb 18 11:43:04 1997 David L. Levine <levine@cs.wustl.edu>
7123 * ace/Log_Msg.cpp: removed destructor because it's not declared
7126 * ace/OS.i (thr_setprio): added another case (that is NOTSUP)
7127 for platforms with Pthreads and with LACK_SETSCHED. Thanks to
7128 Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
7130 * tests/Reactor_Notify_Test.cpp (main): added shutdown flag so
7131 that normal termination reaches ACE_END_TEST.
7133 * tests/Reactors_Test.cpp (worker): changed "timeout" message to
7134 "Reactor shutdown" because that indicates normal termination,
7135 and won't fool the one-button test.
7137 * examples/Mem_Map/IO-tests/test_io.cpp (main): added
7138 ACE_UNUSED_ARG (sa);.
7140 * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG
7143 Tue Feb 18 03:50:10 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7147 (a) Added a closed_for_business_ flag so that handle_events()
7148 cannot be called after the ReactorEx has been closed down.
7150 (b) Transfer of ownership of the ReactorEx to a new owner has
7151 changed. The transfer will not complete until all threads
7152 are ready for it (just like the handle set).
7153 ReactorEx->update_state() now looks out for changes in
7156 * examples/Reactor/ReactorEx/test_MT.cpp:
7158 (a) The test now terminates and number of iterations can be
7159 specified on the command line.
7161 (b) Graceful shutdown of ReactorEx is now exercised in the
7162 test. This is a change for the earlier infinite loop. This
7163 also shows how to gracefully close ReactorEx which is being
7164 shared by multiple threads.
7166 (c) Timers were added to the test.
7168 * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF.
7170 Mon Feb 17 22:37:35 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
7172 * ace/Log_Msg.h (ACE_RETURN): Modified all ACE_RETURN macros to
7173 use ACE_OS::last_error instead of errno. This makes these more
7176 * ace/Log_Msg.cpp (log): Modified Win32 version to use
7177 FormatMessage if errnum is greater than sys_nerr.
7179 * ace/OS.i (last_error): Modified Win32 version to return
7180 GetLastError if errno == 0.
7182 Mon Feb 17 18:32:29 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
7184 * ace/OS.h: Protected the #ifdef for CLOCK_REALTIME so that it
7185 won't conflict with an existing macro in AIX. Thanks to Chris
7186 Lahey <CLahey@cccis.com> for this.
7188 * ace/Local_Name_Space_T.h: Added Local_Name_Space.h to
7189 Local_Name_Space_T.h so that templates will work correctly on
7190 AIX. Thanks to Chris Lahey <CLahey@cccis.com> for this.
7192 * tests: Added a new test, Reactor_Notify_Test.cpp, which tests
7193 out the new max_notify_iterations() method on the Reactor.
7195 * ace/Reactor: Finished rewriting and testing the new dispatching
7196 logic of the Reactor. The new implementation guards against
7197 pathological cases where ACE_Event_Handler::handle_*() methods
7198 remove registered ACE_Event_Handler objects whose handles are
7199 pending in the dispatch_set. Previously there was no good way
7200 to guard against this. Now, it should be handled automatically.
7202 * ace: Added many minor fixes to remove warnings with the SGI C++
7203 compiler. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for
7206 * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all
7207 the warnings for the SGI C++ compiler. Thanks to Gonzalo
7208 Diethelm <gonzo@ing.puc.cl> for suggesting this.
7210 Mon Feb 17 20:59:47 1997 David L. Levine <levine@cs.wustl.edu>
7212 * ace/IOStream.h: added null ipfx (), etc., methods for ACE_WIN32
7213 because its iostream class doesn't have them.
7215 * ace/OS.h: added #include of <netinet/tcp.h> on VxWorks.
7217 * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that
7218 OS.h #includes <netinet/tcp.h>.
7220 * ace/ReactorEx.h: made ACE_ReactorEx_Handler_Repository destructor
7221 virtual because the class has other virtual functions.
7223 * tests/IOStream_Test.cpp: removed ACE_WIN32 #ifndef, and
7224 removed q_char bool conversion operator because it shouldn't
7227 * examples/Reactor/Misc/pingpong.cpp (handle_input): cast buf_len
7228 to ssize_t to avoid signed/unsigned comparison.
7230 * examples/Service_Configurator/IPC-tests/client/\
7231 remote_dgram_client_test.cpp (main): cast mmap.size () to
7232 ssize_t to avoid signed/unsigned comparison.
7234 Mon Feb 17 09:25:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
7236 * ace/config-linux-lxpthreads.h: Bumped the Linux kernel version
7237 number assigned to the symbol LINUX. Also added conditional
7238 defines for PTHREAD_{MAX,MIN}_PRIORITY when using Xavier Leroy's
7241 * ace/Thread_Priority.cpp: Added convert_to_os_priority() for Linux.
7243 Mon Feb 17 03:15:48 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7245 * tests/SOCK_Test.cpp (server): Changed recv_n() to recv().
7247 * tests/tests.{mak,mdp}: Added two new tests: IOStream and
7250 * ace/Reactor: Removed all special checks for setting
7251 ACE_Reactor::max_notify_iterations_ on WIN32 to be 1. This was
7252 made possible after we figured out that the errno was being
7253 reset after the recv() call in handle_input(). This allows
7254 ACE_Reactor_Notify::handle_input() to serve upto
7255 ACE_Reactor::max_notify_iterations_ notifications in one shot
7256 rather than just 1 on WIN32. This should speed up the Reactor on
7259 Sun Feb 16 12:23:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7261 * ace/Reactor.cpp: Totally rewrote the ACE_Reactor's dispatching
7262 mechanism so that it now keeps track of whether the state of the
7263 wait_set_ has changed during a dispatch (i.e., whenever
7264 register_handler_i() or remove_handler_i() is called). If the
7265 wait_set_ state *has* changed, then we bail out and rerun
7266 select() in order to get the latest changes.
7268 * ace/Reactor.cpp: Changed the implementation of the
7269 ACE_Reactor_Notify class so that (1) it short-circuits a trip
7270 through the ACE_Reactor::notify_handle() method (after all, it's
7271 just going to call its own handle_input() method back) and (2)
7272 the ACE_Reactor_Notify::handle_input() method now returns a
7273 count of the number of handlers that it dispatched.
7275 * ace/Log_Msg.h: Added a (%P|%t) so that we now print out the
7276 process id and thread number for failed ACE_ASSERT() calls.
7278 * tests: Removed the unnecessary template specializations of
7279 ACE_Atomic_Op<ACE_Thread_Mutex, int> since this is already done
7282 * ace/Reactor.cpp: Removed the #ifdef preventing the enabling of
7283 non-blocking mode for the recv() side of the Reactor's
7284 notification pipe (socket) for Win32. I believe that with the
7285 new max_notify_iterations scheme we should be all set.
7287 * ace/ReactorEx.cpp: Added an identical API for bounding the
7288 max_notify_iterations() for ReactorEx.
7290 * ace/Reactor.cpp: Enhanced the Reactor's notify() mechanism so
7291 that it is now possible to set the max_notify_iterations(),
7292 which limits the number of times that the
7293 ACE_Reactor_Notify::handle_input() method will iterate and
7294 dispatch the ACE_Event_Handlers that are passed in via the
7295 notify pipe before breaking out of its recv() loop. This is
7296 necessary to keep from starving out other Event_Handlers.
7297 Thanks to Rod Skinner <rods@in.ot.com.au> for pointing out the
7300 * ace/Reactor.cpp: Fixed a bug in the WIN32
7301 ACE_Reactor_Notify::handle_input() logic. We were calling
7302 requeue_position(0) when we should have been calling renew().
7304 Sat Feb 15 11:46:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7306 * ace/ACE.cpp: It appears that VxWorks doesn't support fcntl().
7307 However, it does seem to support ioctl(). Therefore, that's how
7308 we'll set the descriptors into non-blocking mode. Thanks to
7309 Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
7311 * ace/SOCK_Stream.h: Corrected the documentation for
7312 ACE_SOCK_Stream::recv_n (void *buf, size_t len, int flags, const
7313 ACE_Time_Value *timeout). Thanks to Paul Roman
7314 <proman@npac.syr.edu> for reporting this.
7316 * ace/SOCK_Stream.i (recv_n): Fixed a minor bug in the
7317 SOCK_Stream.i line 38:
7319 ACE_TRACE ("ACE_SOCK_Stream::send_n");
7323 ACE_TRACE ("ACE_SOCK_Stream::recv_n");
7325 Thanks to Paul Roman <proman@npac.syr.edu> for reporting this.
7327 Fri Feb 14 00:40:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7329 * ace/TTY_IO.cpp (control): Moved the drop out timer value from
7330 the ACE struct to the WinNT struct. Thanks to Brad Flood
7331 <BFLOOD@tcs.lmco.com> for this fix.
7333 Thu Feb 13 21:24:17 1997 <irfan@cha-cha.cs.wustl.edu>
7335 * ace/OS.i (event_wait): Fixed the missing check for success.
7337 * ace/Synch: Fixed problems with multiple removal of
7338 resources. Thanks to Bert (Bcraytor@aol.com) for pointing this
7341 * examples/Threads/test.{mdp,mak}: Reorganized project so that it
7344 * examples/Threads: Small changes to make tests run faster.
7346 Thu Feb 13 01:49:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7348 * ace/OS.i (stat): Added stat() to ACE_OS.
7350 * apps/jaws: The ACE web server has now been ported to Win32.
7352 * ace/ReactorEx: Add a new version of remove_handler().
7354 * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only
7355 <concurrent_threads> are activated.
7357 Wed Feb 12 22:58:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7359 * ace/ReactorEx: Made minor changes to the ReactorEx.
7361 * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new
7362 ReactorEx test to use ACE_Tasks.
7364 Wed Feb 12 00:08:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7366 * ace/ReactorEx: Finished a complete rewrite of
7367 ReactorEx. The new version allows multiple threads of
7368 control to wait simultaneously in
7369 ::WaitForMultipleObjects(). This was difficult because the
7370 set of ACE_HANDLEs used in ReactorEx->handle_events() is
7371 shared between all threads. We devised a clever protocol
7372 that ensures all changes to the handle set are
7373 serialized. This serialization was achieved by using
7374 multiple (auto and manual) events and mutexes and by taking
7375 advantage of the "waitAll" semantics of
7376 WaitForMultipleObjects().
7378 Concept of "owner" thread is introduced in ReactorEx. We
7379 need to keep track of the "owner" because we don't want
7380 multiple threads to try to expire timers. Therefore the
7381 "owner" thread is the only one allowed to expire
7382 timers. Also, the owner thread is the only thread which
7383 waits on the internal notify handle (which is used to
7384 dispatch explicit calls to
7385 ACE_ReactorEx::notify(). Initially, the creator thread of
7386 ReactorEx becomes the "owner" thread. Ownership can later be
7387 transferred among threads, just as with the standard
7390 We also updated the Handler Repository since it now
7391 keeps track of <handle, event_handler> tuples to be added
7392 and deleted from the current handle set at the appropriate
7393 time (i.e., when all threads are out of
7394 WaitForMultipleObjects() and have completed all necessary
7395 dispatching). The Handler_Repository implements the update
7396 protocol that is used to serialize changes to its internal
7399 Two slots were added to the <size> parameter in the
7400 constructor and open methods of ReactorEx that will store
7401 handles used for internal management. Therefore, users can add
7402 upto MAXIMUM_WAIT_OBJECTS - 2 handles into ReactorEx. On
7403 current WinNT platforms (e.g., 3.51 and 4.0)
7404 MAXIMUM_WAIT_OBJECTS is 64.
7406 Note that the interface to ReactorEx did not change in this
7407 process. Your existing code should work without changes.
7408 Moreover, we've optimized the implementation so that if only
7409 1 thread calls ACE_ReactorEx::handle_events() the code is
7410 very efficient. Moreover, you can dynamically add or remove
7411 threads without having to register them with the ReactorEx.
7413 * examples/Reactor/ReactorEx/test_MT.cpp: This application tests
7414 multiple threads simultaneously calling
7415 ReactorEx->handle_events(). It also shows how different threads
7416 can update the state of ReactorEx.
7418 Wed Feb 12 00:08:42 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
7420 * ace/Synch: Added a remove() call to ~ACE_Thread_Mutex so that it
7421 will be removed (and resources cleaned up) automatically when an
7422 ACE_Thread_Mutex object goes out of scope. Thanks to Jay
7423 Denkberg <jay_denkberg@mail.icomverse.com> for reporting this.
7425 * ace: Added a new config file (config-irix6.2-sgic++-nothreads.h)
7426 that works for non-Pthread versions of SGI 6.2. Thanks to Fred
7427 LaBar <flabar@fallschurch.esys.com> for this.
7429 * ace/XtReactor: Fixed a bunch of minor bugs that crept into the
7430 ACE_XtReactor. Thanks to Fred LaBar
7431 <flabar@fallschurch.esys.com> for reporting this.
7433 * ace/OS.i (thr_getprio): Fixed a typo in the #ifdefs so that we
7434 return ACE_NOTSUP_RETURN(-1) if threading isn't enabled. Thanks
7435 to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
7437 Tue Feb 11 11:26:03 1997 David L. Levine <levine@cs.wustl.edu>
7439 * ace/OS.{h,i},config-vxworks*.h,README: added ACE_HAS_CLOCK_GETTIME,
7440 and only support ACE_OS::clock_gettime if that's defined.
7441 It can be supported on Solaris 2.5, but -lposix4 is then required.
7443 * ace/Thread_Priority.*: added increment () and decrement ()
7446 * include/makeinclude/platform_sunos5_sunc++_4.1.GNU:
7447 added -pta back to avoid link problems with template classes
7448 that have virtual functions that are all inline, if inlining
7449 is disabled. Though we don't see the problem, other 4.1 users do.
7450 Thanks to mscallinan@CCGATE.HAC.COM for reporting this.
7452 * examples/Logger/simple-server/Logging_Handler.cpp (handle_input):
7453 cast "len" to ssize_t to prevent mixed signed/unsigned comparison.
7455 * examples/Logger/simple-server/server_loggerd.cpp (main):
7456 added ACE_UNUSED_ARG (sa);.
7458 * examples/Reactor/Misc/notification.cpp (Thread_Handler ctor):
7459 changed type of n_threads argument from int to size_t to avoid
7460 signed/unsigned comparison.
7462 Mon Feb 10 15:27:02 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7464 * ace/Timer_Queue: Added a virtual destructor so that subclasses
7465 deleted via ACE_Timer_Queue *'s will call the right destructor.
7466 Thanks to Stuart Powell <stuartp@in.ot.com.au> for reporting
7469 * ace/Timer_Heap.cpp: Added support for automatically growing
7470 ACE_Timer_Heaps. This allows heaps to grow automatically as new
7471 ACE_Event_Handlers are added dynamically. Thanks to Stuart
7472 Powell <stuartp@in.ot.com.au> for this enhancement.
7474 * ace/Memory_Pool: Added support that allows flags to be passed in
7475 to the MMAP_Memory_Pool. This can be used to set the
7476 appropriate type of backing store semantics (e.g., MAP_PRIVATE
7477 and MAP_SHARED). Thanks to Fred LaBar
7478 <flabar@fallschurch.esys.com> for providing this.
7480 Sun Feb 9 11:56:37 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
7482 * ace/Map_Manager.cpp (bind_i): A recent change to Map_Manager
7483 broke the Connector since errno was getting set to ENOENT rather
7484 than EWOULDBLOCK. Thanks to Mark Rabotnikov
7485 <mark@usp.elscintcorp.co.il> for finding this.
7487 Sun Feb 09 21:44:34 1997 David L. Levine <levine@cs.wustl.edu>
7489 * ace/ACE.{h,cpp}: added static u_long is_prime ().
7491 * ace/{OS.cpp,Thread_Priority.cpp}: added comment about thread
7492 priorities only being tested for 1003.1C version of Pthreads.
7493 Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
7494 for suggesting this.
7496 * ace/OS.{h,i}: added ACE_OS::clock_gettime (). It allows
7497 applications to get high-resolution time on POSIX systems.
7499 * ace/Future.cpp (dump): cast ref_count_ to an int because
7500 g++ doesn't figure it out (it's an ACE_Atomic_Op<ACE_Thread_Mutex,
7501 int>, which does have an int conversion operator).
7503 * ace/Timer_List.cpp (constructor): added initializer for
7504 timer_id_ to prevent unitialized memory read report from Purify.
7506 * tests/IOStream_Test.cpp,Makefile: added IOStream_Test,
7507 complements of James CE Johnson <jcej@lads.com>. Very cool!
7509 * tests/Future_Test.cpp: replaced call to ::sin ()
7510 with one to ACE::is_prime () to remove dependency on libm.
7512 * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1, peer2): removed
7513 unused variables c_addr and serv_addr: they were replaced by
7516 * examples/Threads/future{1,2}.cpp: replaced call to ::sin ()
7517 with one to ACE::is_prime () to remove dependency on libm.
7519 * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: removed
7520 #include of math.h, it wasn't needed.
7522 Sat Feb 08 15:19:50 1997 David L. Levine <levine@cs.wustl.edu>
7524 * ace/ReactorEx.h: commented out ACE_ReactorEx_Notify::message_queue_
7525 declaration if not ACE_WIN32 because Sun C++ chokes on it.
7527 * examples/IPC_SAP/{FILE,SPIPE}_SAP/client.cpp: declare "len" as
7528 ssize_t to avoid signed/unsigned comparison.
7530 Fri Feb 7 01:13:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7532 * ace/OS.i (select): Simplified Chris' fixes for the weird
7533 Linux select() semantics.
7535 * ace/OS: Added a new accessor method called waiters() in
7536 ACE_cond_t that returns the number of waiters on the condition
7537 variable. Thanks to Karlheinz for suggesting this.
7539 * ace/OS: Changed all the ACE_cont_t, ACE_rwlock_t, etc. so that
7540 their fields are private, but made class ACE_OS a friend.
7541 Applications should not be mucking with these fields since they
7544 * ace/OS.h: Fixed a minor typo where friend class ACE_rwlock_t
7545 should be friend class ACE_OS. Thanks to Thilo Kielmann
7546 <kielmann@informatik.uni-siegen.de> for reporting this.
7548 * ace/Log_Msg.cpp: Added a destructor to ACE_Log_Msg and changed
7549 ACE_TSS_cleanup so that it calls delete (ACE_Log_Msg *) ptr.
7550 Thanks to Per Anderson <Per.Andersson@hfera.ericsson.se> for
7553 * tests/Map_Manager_Test.cpp: Create a file Map_Manager_Test_Key.h
7554 and move the class Key into the include file. Include this *.h
7555 file in Map_Manager_Test.cpp. This is needed for template
7556 generation on AIX. Thanks to Chris Lahey <CLahey@cccis.com> for
7559 Fri Feb 7 17:29:40 1997 Chris Cleeland <cleeland@cs.wustl.edu>
7561 * ace/OS.cpp (set_sched_params): added support for POSIX
7562 threads. Thanks to Thilo Kielmann
7563 <kielmann@informatik.uni-siegen.de> for figuring it out and
7564 for providing the code.
7566 * tests/Naming_Test.cpp (test_find): Changed final delete[] to
7567 not try to delete a static buffer. :-(
7569 * tests/SOCK_Test.cpp (server): Added assertion test for
7570 modified select timeval.
7572 Fri Feb 07 13:56:24 1997 David L. Levine <levine@cs.wustl.edu>
7574 * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority
7575 support for Digital Unix. Thanks to Thilo Kielmann
7576 <kielmann@informatik.uni-siegen.de> for figuring the priorities
7577 and priority classes out and for providing the code.
7579 * ace/High_Res_Timer.{h,cpp},config-linux*.h,README:
7580 use struct timespec instead of timespec_t, because not all
7581 platforms have the timespec_t typedef. Thanks to
7582 Marius Kjeldahl <marius@funcom.com> for reporting this on Linux
7583 and Chris Lahey <CLahey@cccis.com> for reporting it on AIX.
7585 * ace/IOStream.h: use "ssize_t send (...)", etc., instead of exact
7586 function prototypes.
7588 * examples/IPC_SAP/TLI_SAP/db-server.cpp: declare struct member as
7589 const char * instead of const char [] because it's not static and
7590 the struct doesn't have constructors.
7592 * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
7593 reordered initializers to match declaration order.
7595 Fri Feb 07 05:08:51 1997 <irfan@cha-cha.cs.wustl.edu>
7597 * ace/Synch.cpp (dump): Fixed access error.
7599 * ace/OS.h: Fixed ACE_rwlock_t friend declaration.
7601 * ace/OS.i: Moved ACE_cond_t::waiters() such that it is now
7602 visiable to NT. Also fixed ACE_OS::cond_timed_wait by returning
7603 the correct return value on a TIMEOUT. Also fixed typo in
7606 Thu Feb 6 20:25:13 1997 Chris Cleeland <cleeland@cs.wustl.edu>
7608 * ace/OS.i (select): Adapted ACE_OS::select methods for use on
7609 platforms (such as Linux) that allow select(2) to modify its
7610 struct timeval arg. New behavior is triggered by the define
7611 ACE_HAS_NONCONST_SELECT_TIMEVAL. Thanks to Jorn Jensen
7612 <jornj@funcom.com> for reporting this!
7614 Thu Feb 06 09:48:43 1997 David L. Levine <levine@cs.wustl.edu>
7616 * ace/config-sunos-sun*.h,README: added
7617 ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR.
7619 * ace/IOStream.{h,cpp}: support
7620 ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR
7621 so that this builds with SunC++.
7623 * examples/IOStream/client/iostream_client.cpp:
7624 reordered args and fixed argv indexes.
7626 * examples/IOStream/server/iostream_server.cpp:
7627 use ACE_DEFAULT_SERVER_PORT for default port.
7629 * tests/Naming_Test.cpp (randomize): changed type of "size" arg to
7630 size_t to avoid compiler warnings about signed/unsigned comparison.
7632 Thu Feb 06 09:40:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
7634 * ace/config-linux*.h: added typedef of timespec_t.
7636 Wed Feb 5 01:45:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7638 * ace/OS.i: Changed the Win32 implementation of all methods that call
7639 WaitForMultipleObjects() so that errno is set to
7640 WAIT_ABANDONED if the mutex is abandoned. This makes it
7641 possible for users to understand why ACE_OS methods that use
7642 synchronization operations fail. Thanks to Ivan Murphy
7643 <Ivan.Murphy@med.siemens.de> for reporting this problem.
7645 * ace/IOStream.cpp (ACE_Streambuf): Moved the const initialization
7646 from the header file to the constructor since this is the only
7647 portable way to do this. Thanks to Michael Maxie
7648 <maxie@acm.org> for reporting this.
7650 * ace/OS.i: Updated the call to thr_setprio() for pthreads so that
7651 it first determines the existing scheduling parameters and then
7652 updates the priority. Thanks to Thilo Kielmann
7653 <kielmann@informatik.uni-siegen.de> for help with this.
7655 * ace/config-osf1-4.0*.h: Updated ACE_NEEDS_HUGE_THREAD_STACKSIZE
7656 to be 1 mega to minimize porting surprises. Thanks to Thilo
7657 Kielmann <kielmann@informatik.uni-siegen.de> for help with this.
7659 * tests/Naming_Test.cpp: Cleaned up a few minor things related to
7660 int i = 0 vs. size_t i = 0.
7662 * ace/SOCK_Dgram.cpp: Added a new macro called
7663 ACE_HAS_SOCKADDR_MSG_NAME, which is used on platforms (e.g.,
7664 DG/UX) that require a cast to (struct sockaddr *) for the
7665 msg_name field of struct msghdr.
7667 Wed Feb 05 10:45:41 1997 David L. Levine <levine@cs.wustl.edu>
7669 * ace/IOStream.h: replaced __*manip with expanded types, because
7670 Sun C++ doesn't have those typedefs; and added complete prototypes
7671 for send, recv, send_n, and recv_n.
7673 * ace/IOStream.cpp: fixed "#define ACE_IOSTREAM_C" to keep g++ sane.
7675 * ace/Hash_Map_Manager.{h,cpp},Map_Manager.{h,cpp}: replaced
7676 DEFAULT_SIZE with ACE_DEFAULT_MAP_SIZE so that Naming_Test runs
7679 * ace/High_Res_Timer.*: added optional scale factor.
7681 * examples/IOStream/{client,server}/Makefile: addd -g++ if building
7684 * tests/Naming_Test.cpp: moved declaration of "i" out of for loop
7685 because it is used after the loop.
7687 * examples/ASX/UPIPE_Event_server/{Consumer,Supplier}_Router.cpp
7688 (open): return 1 if init () succeeds. There's a commented-out
7689 call to activate the objects that would (should?) return a value.
7691 * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp (main): declare n
7692 as ssize_t instead of size_t to avoid compiler warning about
7693 signed/unsigned comparison.
7695 Tue Feb 4 19:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7697 * ace/Signal.cpp: Fixed all the ACE_Sig_Handler[s] methods so that
7698 they now use ACE_Guard, rather than ACE_TSS_Guard, *unless* they
7699 are actually performing callbacks to user-code. Not only is
7700 this faster, but it also avoids thread-specific storage key
7701 leaks on platforms like Solaris!
7703 * ace/OS.cpp (thr_keyfree): Added a new #ifdef for
7704 ACE_HAS_THR_KEYDELETE, which is defined for UNIXWARE. This
7705 fixes a nasty problem with leaking thread-specific keys. Thanks
7706 to Nigel Owen <Nigel@voicelink.co.nz> for reporting this.
7708 * ace/Message_Block.cpp: Added a #include for
7709 "ace/Service_Config.h".
7711 * ace/Malloc.i: Fixed a few warnings by removing the names of
7714 * ace: Added many minor changes to ACE so that it will work on
7715 DG/UX. Thanks to Michael Maxie <maxie@acm.org> for all these.
7717 * ace/LSOCK_Stream.cpp: Applied the same fix as to LSOCK.cpp.
7719 * ace/LSOCK.cpp: Removed the cast of 0 to (char *) for msg_name
7720 since some platforms use (struct sockaddr *). By omitting the
7721 cast the compiler will figure it out correctly. Thanks to
7722 Michael Maxie <maxie@acm.org> for this.
7724 * ace/IOStream: Added a new template adapter for creating an
7725 iostream-like object using an ACE IPC Stream for the actual I/O.
7726 Thanks to James CE Johnson <jcej@lads.com> for this.
7728 * examples/Misc/test_iostreams.cpp: Added a test that illustrates
7729 how the new ACE_iostreams mechanism works. Thanks to James CE
7730 Johnson <jcej@lads.com> for this.
7732 * ace/Message_Block: Updated the ACE_Message_Block implementation
7733 to use ACE_Service_Config::alloc() if the user doesn't supply a
7734 customize version. This also means that we never delete the
7735 allocator_strategy_, so we can remove this flag and reduce the
7736 amount of storage by 4 bytes. Thanks to Irfan for noticing that
7739 * ace/platform_dgux4_epc.h: Added a new platform config file
7740 for DG/UX. Thanks to Michael Maxie <maxie@acm.org> for
7743 * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX.
7744 Thanks to Michael Maxie <maxie@acm.org> for this.
7746 Tue Feb 04 18:26:01 1997 <irfan@cha-cha.cs.wustl.edu>
7748 * ace/Service_Config.cpp (alloc): The implementation now creates a
7749 ACE_New_Allocator rather than a ACE_Allocator_Adaptor. If
7750 you still want the old behavior, simply provide your own
7751 custom allocator singleton for ACE_Service_Config.
7753 * ace/OS.i (mktemp): Added the missing ACE_INLINE directive.
7755 * ace/OS.h: ACE_HAS_INLINED_OSCALLS is now automatically defined
7756 when __ACE_INLINE__ is defined. This avoids mysterious linking
7757 problems that occur otherwise.
7759 * ace/Malloc: Added a virtual destructor to ACE_Allocator. Also
7760 added a new class ACE_New_Allocator which is a sub-class of
7761 ACE_Allocator. This class uses the new/delete operators to
7762 allocate and free up memory. Please note that the only methods
7763 that are supported are malloc() and free(). All other
7764 methods are no-ops. If you require more functionality, please use:
7765 ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL,
7766 MUTEX>> This will allow you to use the added functionality of
7767 bind/find/etc. while using the new/delete operators.
7769 Mon Feb 3 15:35:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7771 * ace/config-aix-*.h: Added a (char *) cast to
7772 ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby
7773 <John.D.Cosby@cpmx.saic.com> for reporting this.
7775 * ace/OS.cpp: Added a new set() method that sets the Time_Value
7776 from a double. Thanks to Brad Flood for this suggestion.
7778 * ace/OS: Changed ACE_OS::flock_t to ACE_OS::ace_flock_t to avoid
7779 a name clash on DG/UX. Thanks to Michael Maxie <maxie@acm.org>
7782 Tue Feb 4 03:02:52 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7784 * tests/Naming_Test.cpp: Added timing and made debug print outs
7785 optional. Also added randomization of the test data.
7787 * ace/OS.h: Fixed prototype for gethrtime ()
7789 Mon Feb 03 21:00:56 1997 David L. Levine <levine@cs.wustl.edu>
7791 * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD
7792 even if ACE_HAS_THREADS is not defined. Thanks to
7793 Michael Maxie <maxie@acm.org> for pointing this out.
7795 * examples/Threads/{process_mutex.cpp,process_semaphore.cpp,
7796 task_three.cpp,thread_manager.cpp,thread_specific.cpp} (main):
7797 added ACE_UNUSED_ARG (sa);.
7799 * examples/Threads/reader_writer.cpp: fixed declaration of
7800 "shared_data" to be "static volatile" instead of "volatile
7801 static", and removed unused variable "n".
7803 * examples/Threads/thread_pool.cpp: removed unused variable "result".
7805 Sun Feb 02 21:24:02 1997 David L. Levine <levine@cs.wustl.edu>
7807 * ace/OS.h: changed hrtime_t to ACE_hrtime_t.
7809 * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to
7810 enable gethrtime () support.
7812 * ace/High_Res_Time.{h,i,cpp}: removed platform-specific #ifdef's,
7813 instead added "unsupported ()" static member function; changed
7814 changed signature of elapsed_time to take time reference as
7815 argument instead of return value; added elapsed_time
7816 (ACE_Time_Value &) and elapsed_time_incr (ACE_Time_Value &).
7818 * examples/Thread/context_switch.cpp: use ACE_High_Res_Timer
7819 instead of the old Timer adapter.
7821 * ace/config-aix-4.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T.
7823 * ace/config-aix-4.2.x.h: added #define ACE_HAS_LONGLONG_T.
7825 * ace/Thread_Priority.{h,cpp}: moved #include of OS.h from .cpp
7828 Sun Feb 02 10:30:29 1997 David L. Levine <levine@cs.wustl.edu>
7830 * ace/Local_Name_Space.cpp: removed ACE_Map_Manager, ACE_Map_Iterator,
7831 and ACE_Map_Entry: they don't appear to be used and, without
7832 including their headers, this file won't compile.
7834 * ace/Hash_Map_Manager.cpp (Hash_Map_Manager (ACE_Allocator *)):
7835 reordered initializers to match declaration order.
7837 Sat Feb 1 15:11:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7839 * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro
7840 flag since it is no longer needed. Thanks to Rob Jordan
7841 <jordan@hursley.ibm.com> for reporting this.
7843 Sat Feb 1 03:25:21 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
7845 * ace/SString.cpp: Added two methods to the wide string
7846 implementation for high-performance. Even though these methods
7847 are somewhat ugly and not the "OO" way of doing things,
7848 performance was at stake here.
7850 * ace/Registry_Name_Space.cpp (resolve): Fixed the implementation
7851 by correctly figuring out the size of the value in the
7852 Registry. This allows us to dynamically allocated the correct
7855 * ace/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the
7856 maximum path length.
7858 * ace/Naming_Context.cpp: Fixed various memory leaks.
7860 * ace/Local_Name_Space_T.h: Replaced the simple-minded Map_Manager
7861 with the new (improved) Hash_Map_Manager.
7863 * ace/Local_Name_Space.cpp: Added new methods operator!= and hash
7864 required by the map.
7866 * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra
7869 * tests/Naming_Test.cpp: Removed memory leaks.
7871 Fri Jan 31 19:39:48 1997 David L. Levine <levine@cs.wustl.edu>
7873 * ace/Hash_Map_Manager.cpp (ctor): reordered initializers
7874 to match declaration order.
7876 * tests/Time_Value_Test.cpp: cast double argument to long
7877 because there no longer is a constructor that takes a double.
7879 * ace/Hash_Map_Manager.{h,cpp}: removed #include of
7880 ace/Hash_Map_Manager.i because it doesn't exist.
7881 Protected .cpp file against multiple includes. Moved
7882 #include of "ace/Malloc.h" from .h to .cpp file.
7884 * ace/Map_Manager.cpp (current_size, total_size): cast -1 to
7885 size_t to avoid warning about signed-to-unsigned conversion.
7887 * ace/OS.h: moved hrtime_t typedef for ACE_WIN32 so it doesn't
7890 * ace/OS.i (getservbyname): one last ACE_HAS_NONCONST_GETBY change:
7891 missed "lproto" to "proto".
7893 * bin/create_ace_build: added checks for existing symlinks, so
7894 now the script can be re-run safely at any time on a build
7897 Fri Jan 31 02:16:30 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7899 * ace/config-aix-*.h: Made the default value for
7900 ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions
7901 with AIX. Thanks to Rob Jordan <jordan@hursley.ibm.com> for
7904 * examples/Map_Manager: Added a new example of the
7907 * tests/Map_Manager: Integrated the Hash_Map_Manager into the
7908 Map_Manager test and greatly improved the test (e.g., by adding
7911 * ace: Added a new implementation of the Map_Manager called
7912 Hash_Map_Manager. This, of course, uses hashing rather than
7913 linear search. The result should be a much faster
7914 implementation for many types of applications.
7916 Thu Jan 30 13:55:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7918 * ace/Map_Manager: Changed the return type of total_size() and
7919 current_size() to size_t.
7921 * ace/OS: Had to remove the ACE_Time_Value (double) constructor
7922 since it caused ambiguities with ACE_Time_Value (long). Thanks
7923 to Per Andersson for figuring this out.
7925 * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Added
7926 -D_REENTRANT to make things work correctly in MT programs.
7927 Thanks to Marius for this fix.
7929 * ace/OS.h: Added several extra constructors for ACE_Time_Value so
7930 that it won't cause problems with the new ACE_Time_Value
7931 (double) constructor.
7933 * ace/Log_Record.cpp (ACE_Log_Record): Added an "L" to the 0
7934 initial value used for time_stamp_. Thanks to Marius for
7937 * ace: Added the new config-aix-4.2.x.h file, which supports the
7938 AIX4.2 platform. Thanks to Rob Jordan <jordan@hursley.ibm.com>
7941 * include/makeinclude/platform_aix4.2.GNU: Added support for the
7942 new AIX4.2 platform. Thanks to Rob Jordan
7943 <jordan@hursley.ibm.com> for this.
7945 * ace/OS.h: It's now possible to override ACE_DEFAULT_BASE_ADDR in
7946 a config.h file. This is important for platforms that need to
7947 put shared memory segments at particular address ranges. Thanks
7948 to Rob Jordan <jordan@hursley.ibm.com> for suggesting this.
7950 Thu Jan 30 16:01:37 1997 David L. Levine <levine@cs.wustl.edu>
7952 * ace/{config-aix-4.1.x.h,README}: added ACE_HAS_AIX_HIRES_TIMER,
7953 see change to gettimeofday in OS.i below; and ACE_HAS_LONGLONG_T.
7955 * ace/OS.i (gettimeofday, gethrtime): use read_real_time () if
7956 ACE_HAS_AIX_HIRES_TIMER. Thanks to Bob Olson
7957 <olson@mcs.anl.gov> for this suggestion.
7959 * ace/OS.h: define hrtime_t as long long if ACE_HAS_AIX_HIRES_TIMER.
7961 * ace/OS.{i,cpp}: uninlined ACE_OS::gethostbyname (),
7962 and ACE_OS::inet_ntoa () on VxWorks, because they have
7965 * ace/OS.i (gethostbyaddr, getservbyname, gethostbyaddr,
7966 gethostbyname, getservbyname_r): with ACE_HAS_NONCONST_GETBY,
7967 instead of copying the const argument, just cast it to (char *).
7968 Thanks to Michael Maxie <maxie@acm.org> for pointing out the
7969 problem with the nonstatic char arrays with sizes determined at
7972 * ace/High_Res_Timer.*: added ACE_HAS_AIX_HIRES_TIMER support.
7973 Also, renamed get_time () to elapsed_microseconds ().
7975 * examples/Threads/{Timer.h,context_switch_time.cpp}:
7976 ACE_High_Res_Timer::elapsed_microseconds () instead of
7977 ACE_High_Res_Timer::get_time ().
7979 * bin/create_ace_build: added this script: it creates an ACE build
7980 tree in directory "build/<build name>" below the current
7981 directory, which must be a ACE "top level" directory (such as
7982 $WRAPPER_ROOT). The build tree directory structure mirrors that
7983 of the ACE top level directory structure, except that instead of
7984 containing any plain files, it contains only symlinks to the files
7985 in the ACE top level structure.
7987 Thu Jan 30 06:57:50 1997 David L. Levine <levine@cs.wustl.edu>
7989 * ace/Thread_Priority.cpp (convert_to_os_priority): changed
7990 switch (priority_class) to switch (priority_class_).
7991 Thanks to Chris Lahey <CLahey@cccis.com> for pointing this out.
7992 Also, return -1 on other than Solaris, Win32, and VxWorks.
7994 Wed Jan 29 22:05:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
7996 * tests/Naming_Test.cpp: Added the prefix "test_" to the bind(),
7997 find(), rebind(), and unbind() functions. This avoids name
7998 clashes with the bind() call from the socket API. Thanks to
7999 Marius for this info.
8001 * ace/OS.cpp (ACE_Time_Value): Added a new constructor that makes
8002 it possible to construct an ACE_Time_Value from a double.
8003 Thanks to Brad Flood <BFLOOD@tcs.lmco.com> for this.
8005 * ace/OS.i (thr_join): If ACE_HAS_THREADS is defined, but none of
8006 the threading APIs match (e.g., AIX) then we'll return
8007 ACE_NOTSUP_RETURN(-1). Thanks to Chris Lahey for help with
8010 * include/makeinclude/platform_aix.GNU: Made some changes to the
8011 type of dynamic linker and libraries used by AIX 4.1. Thanks to
8012 Chris Lahey for help with this.
8014 * ace/config-aix-4.1.x.h: Changed from BSD 4.3 to 4.4. Thanks
8015 to Chris Lahey for help with this.
8017 Wed Jan 29 09:03:48 1997 David L. Levine <levine@cs.wustl.edu>
8019 * ace/OS.h: moved ACE_id_t and ACE_pri_t typedefs out of the
8020 ACE_HAS_THREADS section.
8022 * ace/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks.
8024 * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated
8027 * examples/Threads/{context_switch_time.cpp,Timer.h,Makefile}:
8028 added context switch timing test. Currently only works on
8029 Suns because that's the only platform for which ACE has a
8030 high-resolution timer.
8032 * Makefile: added chmod of VERSION file in TIMESTAMP macro.
8034 Wed Jan 29 00:59:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8036 * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Removed
8037 the -D_MIT_POSIX_PTHREADS symbol since we're using Xavier's
8038 threads instead. Thanks to Marius Kjeldahl <marius@funcom.com,
8039 mariusk@sn.no> for reporting this.
8041 * ace/config-linux-lxpthreads.h: Removed the _MIT_POSIX_PTHREADS
8042 symbol since we're using Xavier's threads instead. Thanks to
8043 Marius Kjeldahl <marius@funcom.com, mariusk@sn.no> for reporting
8046 Tue Jan 28 23:32:58 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8048 * ace/SString: Added hash() methods to each ACE String class so
8049 that we can use this with the new ACE_Hash_Set implementation of
8052 * ace/ACE.h (ACE): Added a UNICODE version of hash_pjw() so that
8053 we can use it to hash ACE_WString.
8055 * ace/OS.i (thr_setprio): Fixed a typo that was left over from a
8056 previous change. Thanks to Fred LaBar
8057 <flabar@fallschurch.esys.com> for reporting this.
8059 * apps/Gateway/Gateway/{proxy_config,consumer_config}: Added
8060 comments to these config files so they are easier to understand.
8061 Thanks to Chuck Gehr for motivating this.
8063 * apps/Gateway/Peer/Peer.cpp: Changed the name from connection_id_
8064 to proxy_id_, which is more accurate.
8066 * apps/Gateway/Peer/Peer.cpp: Added a destructor to Peer_Handler
8067 so that it can clean itself up properly when shutdown with a
8068 signal. This fixes a nasty bug.
8070 * ace/config-win32-msvc4.x.h (ACE_HAS_MFC): By default, ACE now
8071 enables ACE_HAS_MFC. This makes it possible to use
8072 AfxBeginThread() with the ACE_THR_AFX flag.
8074 * ace/OS.cpp: Fixed a typo in the call to ::AfxBeginThread()
8075 function. Thanks to Karlheinz for reporting this.
8077 * apps/Gateway/Peer/Peer.cpp: Removed all uses of the Map_Manager
8078 from the Peer. There's only ever one connection from a Gateway
8079 per-Peer, so what was this doing here anyway?! It was causing
8080 problems due to multiple deletions, so removing it improves
8081 robustness of the tests.
8083 * ace/OS.i: Commented out the "extern char **_sys_siglist"
8084 definition since this was conflicting with the definition in
8085 Solaris. If some platforms needs this, we'll need to add a
8088 Tue Jan 28 21:57:45 1997 David L. Levine <levine@cs.wustl.edu>
8090 * ace/OS.{h,cpp}: added ACE_OS::set_sched_params (). It permits
8091 platform-independent setting of thread priorities and
8092 priority classes. It is currently supported on Solaris,
8095 * ace/Scheduling_Parameters.{h,i,cpp},
8096 ace/Thread_Priority.{h,i,cpp}, ace/Makefile:
8097 Added these two classes to support ACE_OS::set_sched_params ().
8099 Tue Jan 28 12:42:39 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
8101 * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags.
8103 * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe.
8105 * tests/Pipe_Test.cpp (main): Added an iteration count to control
8106 the number of children created by the main process.
8108 * ace/Memory_Pool.cpp (init_acquire): cast this->minimum_bytes_ to
8109 size_t to avoid compiler warning if size_t is unsigned.
8111 * ace/OS.h: Added strncat to the OS class.
8113 Tue Jan 28 09:13:00 1997 David L. Levine <levine@cs.wustl.edu>
8115 * ace/ACE.cpp (ACE::ldfind),
8116 ace/Local_Name_Space_T.cpp,
8117 ace/Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry),
8118 ace/Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find),
8119 Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool),
8120 ace/Naming_Context.cpp (ACE_Naming_Context::open),
8121 ace/Parse_Node.cpp (ACE_Location_Node::open_handle),
8122 ace/Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
8123 ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
8124 ACE_Registry::Binding_Iterator::Context_Iteration::next_n),
8125 tests/UPIPE_SAP_Test.cpp:
8126 changed "sizeof char" to "sizeof (char)" because g++ and Sun C++
8127 (properly) choked on it.
8129 * ace/Local_Name_Space_T.cpp (create_manager_i):
8130 -- ::strncat () instead of ACE_OS::strcat ()
8131 -- "lock_name_for_backing_store" instead of
8132 "lock_name_for_local_name_space"
8134 * ace/Naming_Context.cpp (both constructors): reordered
8135 initializers to match declaration order.
8137 * include/makeinclude/platform_sunos5_g++.GNU: removed
8138 -fno-strict-prototypes because it's not needed with SunOS 5.5.1.
8140 Mon Jan 27 21:33:00 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
8142 * tests/Naming_Test.cpp (main): Made modifications to the test to
8143 make it more dynamic. Also made it work with UNICODE and
8146 * ace/Local_Name_Space_T.cpp (create_manager_i): Added a better
8147 naming scheme for the locks.
8149 * ace: Changed the calculations of string lengths such that the
8150 size of the character type is carefully considered.
8152 The following were affected:
8154 ACE.cpp (ACE::ldfind)
8155 Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry)
8156 Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find)
8157 Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool)
8158 Naming_Context.cpp (ACE_Naming_Context::open)
8159 Parse_Node.cpp (ACE_Location_Node::open_handle)
8160 Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
8161 ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
8162 ACE_Registry::Binding_Iterator::Context_Iteration::next_n)
8164 * ace/OS.h: Added UNICODE support for ACE_DEFAULT_LOCALNAME.
8166 * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to:
8169 ACE_Overlapped_File::ACE_Overlapped_File
8170 ACE_Overlapped_File::open
8172 * ace/Registry_Name_Space.h: Changed the order of #include and
8173 #define as that the correct set of MACROS are defined for the
8176 * tests/MM_Shared_Memory_Test.cpp: Added UNICODE support.
8178 Mon Jan 27 09:16:03 1997 David L. Levine <levine@cs.wustl.edu>
8180 * include/makeinclude/platform_sunos5_sunc++.GNU,
8181 include/makeinclude/platform_sunos5_sunc++_orbix.GNU,
8182 ace/config-sunos5.5-sunc++-4.x-orbix.h
8183 ace/config-sunos5.5-sunc++-4.x.h:
8184 disabled exception handling by commenting out ACE_HAS_EXCEPTIONS
8185 in the config files and adding -noex to the platform files,
8186 because it causes trouble, at least on MP machines.
8188 Mon Jan 27 14:54:31 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8190 * ace/Memory_Pool.h: Added code to ACE_MMAP_Memory_Pool_Options to
8191 take a minimum_bytes parameter. This is needed to prevent mmap
8192 remapping when a large segment is requested. Thanks to Fred
8193 LaBar <flabar@fallschurch.esys.com> for this.
8195 Sun Jan 26 13:39:13 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8197 * ace/OS.i: Changed the typo sis_siglist to sys_siglist. Also,
8198 changed the logic from #if !defined (ACE_HAS_SYS_SIGLIST) to
8199 #if defined (ACE_HAS_SYS_SIGLIST) since this makes more sense...
8200 Thanks to Nanbor Wang <nw1@cs.wustl.edu> for noticing this.
8202 Sat Jan 25 20:30:23 1997 David L. Levine <levine@cs.wustl.edu>
8204 * ace/config-sunos5.5-sunc++-4.1.h: commented out ACE_HAS_EXCEPTIONS
8205 #define because -noex is required with it, and that causes core
8206 dump during thread exit on multiprocessor UltraSparcs.
8208 * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: added -noex
8209 back because of core dump during thread exit on
8210 multiprocessor UltraSparcs.
8212 * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp,
8213 examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp (control):
8214 added "default" case to switch statement to eliminate compiler
8215 warnings about enumeration values not being handled in switch.
8217 * examples/ASX/UPIPE_Event_Server/event_server.cpp (consumer):
8218 removed unused variable "iter".
8220 Sat Jan 25 12:50:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8222 * ace/OS.i: Updated all the cond_timedwait() and cond_wait()
8223 methods so that they decrement the count of waiters by one even
8224 when errors occur. Thanks to Irfan for finding this.
8226 * ace/Map_Manager.cpp: Updated the ACE_Map_Iterator code so that
8227 it no longer crashes if the Map has been closed. Thanks to
8228 Slawomir Kuzniar <kuzniar@Bear.COM> for reporting this.
8230 Sat Jan 25 11:34:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
8232 * ace/SOCK_Connector.cpp (complete): Added a sleep of zero seconds
8233 which allows non-blocking connects to work properly on NT.
8235 * ace/config-winnt-4.0-msvc4.x.h and config-win32-msvc4.x.h:
8236 Added ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS.
8238 * ace/OS.i: Moved out all code for Time_Value from #if region. It
8241 * ace/Reactor: Added helper routines to stop the VC++ compiler from
8242 bitching about destructors in exception handling code.
8244 * ace/ace.{mak,mdp}: Removed Time_Value.cpp from project.
8246 * tests/tests.{mak,mdp}: Corrected the creation of SOCK_Test and
8247 Message_Blob_Test executables and temporary files.
8249 Fri Jan 24 09:01:50 1997 David L. Levine <levine@cs.wustl.edu>
8251 * examples/Connection/misc/Connection_Handler.cpp: added
8252 specialization of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
8253 so that subproject will build with g++ without optimization.
8255 * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations
8256 of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH> and
8257 ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
8258 so that subproject will build with g++ without optimization.
8260 * tests/Reactor_Exceptions_Test.cpp (main): added ACE_UNUSED_ARG
8261 for argc and argv when ACE_HAS_EXCEPTIONS is not defined.
8263 * performance-tests/Misc/test_mutex.cpp: made destructor of
8264 Thread_Mutex_Derived virtual because the class has other virtual
8267 Thu Jan 23 11:51:45 1997 David L. Levine <levine@cs.wustl.edu>
8269 * ace/config-sunos5.5-g++.h: commented out ACE_HAS_EXCEPTIONS because
8270 -fhandle-exceptions is broken in g++ 2.7.2 (and is required in order
8271 to use exception handling); also, added ACE_HAS_INLINED_OSCALLS, if
8272 __ACE_INLINE__ is #defined.
8274 * ace/config-sunos5.5-sunc++-4.1.h: added ACE_HAS_INLINED_OSCALLS,
8275 if __ACE_INLINE__ is #defined.
8277 Wed Jan 22 15:04:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8279 * ace/OS.h: Moved the ACE_TIMER_SKEW macro to below the #inclusion
8280 of config.h and updated it so that it can be overridden in the
8281 config.h file if necessary. Thanks to Bob Olson
8282 <olson@mcs.anl.gov> for motivating this.
8284 * ace/OS.cpp: Fixed the implementation of
8285 ACE_Thread_ID::operator== so that it works correctly when thread
8286 ids and thread handles aren't ints. Thanks to Chuck Gehr for
8289 * ace/OS.i (thr_getprio): Moved a stray #else into the right
8290 place. Thanks to Chuck Gehr for reporting this.
8292 * ace/OS.i (sema_post): this->count_++ should have been
8293 s->count_++. Thanks to Chuck Gehr for reporting this.
8295 * ace/Synch_T.cpp: Added an extern "C" definition for
8296 ACE_TSS_C_cleanup(). Thanks to Chuck Gehr for reporting this.
8298 * ace: Added a new #define called ACE_LACKS_SYS_NERR to the
8299 config files for MVS and VxWorks. This is used in OS.cpp
8302 #if defined (ACE_LACKS_SYS_NERR)
8303 int sys_nerr = ERRMAX + 1;
8304 #endif /* ACE_LACKS_SYS_NERR */
8306 Thanks to Chuck Gehr for reporting this.
8308 * Removed all #inclusions of "ace/Time_Value.h." This file
8309 no longer contains anything besides a #include "ace/OS.h"
8310 and is only kept around due to backwards compatibility.
8312 * ace: Moved the contents of Time_Value.h into OS.h to reduce the
8313 confusion that arises from the #inclusion of "config.h" in
8314 Time_Value.h. Also merged the contents of Time_Value.{i,cpp}
8315 into OS.{i,cpp}. Thanks to the MDA guys for motivating this.
8317 * tests/Reactor_Exceptions_Test.cpp: Added a new test that
8318 exercises the Reactor with C++ exceptions. Thanks to Luca for
8321 * ace/Reactor.cpp (handle_events): Added Win32 structured
8322 exception handling support to the ACE_Reactor::handle_events()
8323 method so that it correctly releases the token lock when Win32
8324 SEH occur in callback routines. Thanks to Luca for reporting
8327 * ace: Added a new macro called ACE_HAS_EXCEPTIONS, which
8328 indicates that the compiler supports C++ exception handling.
8330 * include/makeinclude/platform_sunos5_sunc++*.GNU: Commented out
8331 the -noex flag for now. Hopefully, things will work correctly
8334 * ace/Thread_Manager.cpp (exit): Removed the final acquire() on
8335 ace_mon, which is no longer necessary since the Guard classes
8336 now keep track of whether they are "owned". Thanks to Karlheinz
8337 and Detlef for this fix.
8339 Wed Jan 22 09:05:31 1997 David L. Levine <levine@cs.wustl.edu>
8341 * Makefile,VERSION: modified top-level Makefile (and VERSION)
8342 to add a timestamp to the VERSION file if creating a release
8343 from the /project/adaptive/ACE_wrappers directory. If it
8344 causes problems, this will disable it:
8345 % make TIMESTAMP= release.
8347 * ace/Local_Tokens.cpp (dump): replaced "ACE_TSS<ACE_TPQ_Entry>"
8348 with "ACE_TPQ_ENTRY" so that ACE_NO_TSS_TOKENS is supported.
8350 * ace/Synch.h: fixed typo in comment header for ACE_Thread_Semaphore
8352 * ace/config-vxworks-ghs-1.8.h,config-vxworks5.2-g++.h,
8353 config-unixware-2.01-g++.h:
8354 protect ACE_HAS_INLINED_OSCALLS #defined with
8355 #if defined (__ACE_INLINE__).
8357 * apps/Gateway/Gateway/Event_Channel.cpp (open): added
8358 ACE_UNUSED_ARG (sig);.
8360 * examples/ASX/Event_Server/Event_Server/Peer_Router.h:
8361 declared a friend of class Peer_Router_Context because it
8362 has a private destructor, to eliminate compiler warning
8363 about not having any friends.
8365 * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
8366 (open): added return 0 in "true" branch of if statement so
8367 that the function always returns a value.
8369 Tue Jan 21 09:19:44 1997 David L. Levine <levine@cs.wustl.edu>
8371 * tests/Reader_Writer_Test.cpp (reader): commented out unused
8372 variable "n"; also, commented out unused function
8373 print_usage_and_die.
8375 * tests/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added
8376 ACE_UNUSED_ARG (sa);.
8378 * tests/Thread_Pool_Test.cpp (open): added return 0 at end.
8380 Tue Jan 21 11:00:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8382 * apps/Gateway/Gateway/Gateway.cpp (parse_args): There was a small
8383 bug in parse_args (latest beta), it mixed proxy and consumer
8384 conf files. Thanks to Per Andersson
8385 <Per.Andersson@hfera.ericsson.se> for reporting this.
8387 Mon Jan 20 13:29:28 1997 David L. Levine <levine@cs.wustl.edu>
8389 * ace/OS.i, ace/Task.h, and ace/Thread_Manager.h: changed a few
8390 occurrences of NULL to 0 (for other than Win32 platforms),
8391 primarily to avoid compiler warnings on VxWorks if ACE.h isn't
8392 #included before stddef.h.
8394 * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
8395 (handle_input): replaced %d format with %hu for u_short arg.
8397 * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
8398 (run_writer): initialized variable "t" to avoid compiler warning.
8400 * examples/Connection/misc/Connection_Handler.cpp (handle_timeout):
8401 added ACE_UNUSED_ARG (tv); also, added explicit int return type
8402 to definition of Connection_Handler::close (u_long).
8404 * examples/Threads/task_four.cpp (Invoker_Task::svc):
8405 moved declaration of "task" out of for loop because it is
8406 also used after the for loop.
8408 * netsvcs/lib/Name_Handler.cpp, Server_Logging_Handler.cpp,
8409 TS_Clerk_Handler.cpp, TS_Server_Handler.cpp, Token_Handler.cpp:
8410 added ACE_UNUSED_ARG (sig);.
8412 Sun Jan 19 11:10:49 1997 David L. Levine <levine@cs.wustl.edu>
8414 * include/makeinclude/platform_sunos5_sunc++.GNU,
8415 platform_sunos5_sunc++_4.1.GNU:
8416 added comment about compiler warnings with +w option.
8417 Also, added +w to platform_sunos5_sunc++_4.1.GNU. With the
8418 other changes in this ChangeLog entry, there no longer should
8419 be significant warnings from Sun C++ when building ACE.
8421 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
8422 (Peer_Handler::put): added ACE_UNUSED_ARG (tv);.
8424 * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main),
8425 netsvcs/clients/Tokens/invariant/invariant.cpp (main):
8426 commented out argc and argv.
8428 * examples/Mem_Map/file-reverse/file-reverse.cpp (main):
8429 removed unused variable "cp".
8431 * netsvcs/clients/Tokens/manual/manual.cpp (handle_input,
8432 handle_exception): added ACE_UNUSED_ARG (fd); and
8433 (create_proxy): added return statement at end: even
8434 though it should never be reached, it eliminates a
8437 * examples/OS/Process/process.cpp,
8438 examples/Reactor/Misc/test_reactors.cpp,
8439 netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp,
8440 netsvcs/clients/Tokens/mutex/test_mutex.cpp,
8441 netsvcs/clients/Tokens/rw_lock/rw_locks.cpp,
8442 performance-tests/TTCP/ORBeline/ttcp_i.cpp,
8443 performance-tests/TTCP/Orbix/ttcp_i.cpp (main):
8444 return 0 instead of 42.
8446 Sat Jan 18 10:54:25 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
8448 * java/src/README: Updated the README file to indicate how
8449 documentation for Java ACE cab be automatically generated.
8451 Fri Jan 17 11:47:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8453 * ace/OS.h: Added an equivalent set of
8454 ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the
8455 ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm
8456 <gonzo@ing.puc.cl> for suggesting this.
8458 * ace/OS.cpp (ACE_Thread_Adapter): Added a new feature that allows
8459 logging features to be inherited by threads. It works with
8460 those OSs (e.g., Win32) that use ACE_Thread_Adapter class. At
8461 some point, we might do this for all the OSs. Thanks to Luca
8464 * examples/Connection/misc/Connection_Handler.cpp: Added a
8465 new example that illustrates how to use the Acceptor pattern
8466 to create multiple threads, each running its own Reactor.
8468 * ace/Log_Msg.cpp (dump): Some of the variables in the dump()
8469 method have the wrong format specification type. These are:
8470 restart_ (%d), flags_ (%x), priority_mask_ (%d). They are now
8471 fixed, thanks to Luca.
8473 * tests/Priority_Task_Test.cpp (open): Add an ACE_ASSERT to make
8474 sure that the tasks activate() correctly. Thanks to David for
8477 * ace/config-linux-lxpthreads.h: Added #defines for
8478 ACE_HAS_AUTOMATIC_INIT_FINI and ACE_HAS_SVR4_DYNAMIC_LINKING.
8479 Thanks to Marius for this.
8481 * ace/Malloc.h: Changed the typedef of ACE_Malloc_Align to a macro
8482 called ACE_MALLOC_ALIGN to allow users to override this value in
8483 their config.h file. This is necessary for platforms that don't
8484 have "long" word alignments. Thanks to Fred LaBar
8485 <flabar@fallschurch.esys.com> for this suggestion.
8487 * ace/OS.h: Added an #ifdef check for ACE_HAS_IRIX62_THREADS and
8488 if so, we'll use the if (&a) /* null */; } form of the
8489 ACE_UNUSED_ARG macro to avoid unnecessary warnings. Thanks to
8490 Fred LaBar <flabar@fallschurch.esys.com> for testing this out.
8492 Fri Jan 17 16:33:25 1997 David L. Levine <levine@cs.wustl.edu>
8494 * ace/High_Res_Timer.*: added elapsed_time () and get_time ().
8496 * netsvcs/clients/Tokens/collection/collection.cpp, rw_locks.cpp:
8497 commented out unused variables to avoid compiler warnings; and
8498 return 0 from main ().
8500 * include/makeinclude/rules.local.GNU,
8501 netsvcs/lib/Makefile,
8502 examples/Service_Configurator/IPC-tests/server/Makefile:
8503 fixed ESOBUILD mechanism to work on all platforms, not just Linux.
8504 Thanks to Marius Kjeldahl <marius@funcom.com> for this fix.
8506 * ace/OS.i and OS.cpp: uninlined functions that use varargs, because
8507 they usually won't get inlined anyways.
8509 * ace/OS.cpp (thr_create): added #else clause to be sure that
8510 always sparam.sched_priority always get set to the priority argument.
8512 * netsvcs/clients/Naming/Client/Client_Test.cpp: commented out
8513 unused parameters and wrapped combined assignments/conditional
8514 values to avoid compiler (g++) warnings.
8516 * tests/Priority_Task_Test.cpp: added check for successful thread
8517 spawn, and ACE_NEW_THREAD to svc () so that messages get logged.
8519 Thu Jan 16 17:03:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8521 * include/makeinclude: Added support for shared object files
8522 on Linux. Thanks to Marius Kjeldahl <mariusk@sn.no,
8523 marius@funcom.com> for his help with this.
8525 * ace: Merged in the IRIX support, mainly the missing netdb
8526 reentrant functions. Thanks to Gonzalo Diethelm
8527 <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
8530 * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to
8531 avoid name clashes with STL (ugh).
8533 * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things
8534 will link. Thanks to John Morey for reporting this.
8536 * ace/Synch_T.h: Fixed: class ACE_Write_Guard: method:
8537 tryacquire_write so that it will call
8538 ...->lock_->tryacquire_write() and not
8539 ...->lock_->acquire_write(). Thanks to Alexandre Karev
8540 <Alexandre.Karev@cern.ch> for this fix.
8542 Thu Jan 16 15:51:16 1997 David L. Levine <levine@cs.wustl.edu>
8544 * Dump.cpp (register_object): initialized "slot" so that g++ doesn't
8545 complain about uninitialized use.
8547 * Reactor.cpp (initialized): use ACE_GUARD_RETURN instead of
8548 ACE_GUARD because the function returns a value;
8549 (find): initialize "i" if handle is out of range so that g++
8550 doesn't complain about uninitialized use.
8552 * Service_Repository.cpp (remove): removed unused variable "handle".
8554 * Thread_Manager.h: made destructor virtual now that spawn_i () is
8557 * Timer_Heap.cpp: changed some int loop indicies to size_t to
8558 make sure that comparisons are consistently signed or unsigned.
8560 * OS.h, config-vxworks*.h: removed ACE_HAS_GREENHILLS_SOCKETS
8561 ACE macro because the code it wrapped applies to all VxWorks
8562 compilers, not just GreenHills.
8564 Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8566 * ace/ACE.cpp (round_to_pagesize): If _SC_PAGESIZE is enabled then
8567 we set the ACE::pagesize_ variable using sysconf(2). Thanks to
8568 James Mansion for this suggestion.
8570 Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8572 * ace/Timer_Queue.cpp (expire): Changed a line of code from
8574 ACE_Timer_Queue_Iterator &iterator (this->iterator ());
8578 ACE_Timer_Queue_Iterator &iterator = this->iterator ();
8580 so that the Visual C++ compiler can grok it. Thanks to John
8581 Morey for reporting this.
8583 * ace/Reactor.cpp: Modified the close() method so that it can be
8584 called multiple times with no bad side-effects.
8586 * ace/Pipe.cpp: Modified the close() method so that it can be
8587 called multiple times with no bad side-effects.
8589 * ace/Reactor: Added an initialized() method that indicates
8590 whether the Reactor was successfully initialized. Also
8591 rearranged the code in ACE_Reactor::open() so that initialized_
8592 is only set at the end of the method when everything succeeds.
8593 If things *don't* succeed, we call close() on the way out.
8594 Thanks to Luca for these suggestions.
8596 * ace/Reactor.cpp (close): When closing down the ACE_Reactor, we
8597 now set initialized_ back to 0 so that it can be reopened again
8600 * tests/Reader_Writer_Test.cpp: There were some problems with this
8601 test due to the fact that on many pthreads platforms pthread_t
8602 isn't an int (it's a struct). Thanks to Chuck Gehr
8603 <gehr@sweng.stortek.com> for the fix.
8605 * ace/OS.i (exit): In WIN32 when the process exits through an
8606 ExitProcess() call, some process resources (e.g., file handles)
8607 are freed before the static variable destructors are
8608 called. This results in an application error when tracing is
8609 enabled. Removing the ACE_TRACE call in ~ACE_Event_Handler
8610 seems to fix this. Thanks to Luca for this fix.
8612 * ace/OS: Fixed the implementation of semaphores for the POSIX
8613 port (POSIX lacks semaphores). The trick was to add a "waiters"
8614 field, along with the semaphore count. Thanks to John Bossom
8615 <John.Bossom@Cognos.COM> for reporting this.
8617 * examples/Threads/wfmo.cpp: Added a new test program that seems
8618 to indicate that the Win32 WaitForMultipleObjects() function can
8619 be called in multiple threads, all of which wait on the same set
8620 of HANDLEs. Note that the dispatching of the threads is
8621 relatively "fair" (i.e., everyone gets a chance to process the
8622 various HANDLEs as they become active). Thanks to Ari Erev
8623 <Ari_Erev@comverse.com> for suggesting this and providing the
8626 * ace/Thread_Manager.h: Made the spawn_i() method virtual and
8627 moved it into the protected section of the class so that it can
8628 be over-ridden by subclasses. Thanks to Tim Harrison for
8631 Tue Jan 14 15:57:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8633 * ace/OS.h: Changed the default size of ACE_DEFAULT_TIMERS to
8634 _SC_TIMER_MAX (which is typically around 40 or so).
8635 Thanks to Stuart Powell <stuartp@in.ot.com.au> for
8638 * tests/Timer_Queue_Test.cpp (main): Added some additional logic
8639 so that we can test the performance of the preallocated and
8640 non-preallocated ACE_Timer_Heap.
8642 * ace/Timer_Heap: Added a new "preallocate nodes" mechanism to the
8643 ACE_Timer_Heap. If this is enabled by the constructor, then we
8644 preallocate as many ACE_Timer_Nodes as there are slots in the
8645 heap. This allows us to completely remove the need for dynamic
8646 memory allocation, which is important for real-time systems.
8648 * ace/Thread_Manager.cpp (remove_thr): Optimized the code just a
8649 tad by decrementing the current_count_ *first*. Thanks to Per
8650 Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
8652 * ace/ReactorEx: Updated the implementation so that the
8653 handle_events() method now in fact *does* return the number of
8654 event handler's dispatched (i.e., the implementation matches the
8655 documentation...). Thanks to Hamutal Yanay
8656 <Hamutal_Yanay@mail.icomverse.com> for reporting this.
8658 * ace/Service_Repository.cpp (remove): Removed an extra call to
8659 ACE_OS::dlclose(). This is already being called in the
8660 destructor of ACE_Service_Record. Thanks to Karlheinz for
8663 * man: Updated all the nroff and html documentation.
8665 * ace/Timer_Heap: Implemented the spiffy new timer cancellation
8666 algorithm that requires only O(log N) time to remove a timer
8667 from the ACE_Timer_Heap. This is about 50 to 100 times faster
8668 than using the ACE_Timer_List implementation.
8670 Tue Jan 14 21:01:36 1997 David L. Levine <levine@cs.wustl.edu>
8672 * ace/OS.h: Replace "Linux" preprocessor symbol with "linux".
8674 Mon Jan 13 17:57:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8676 * ace/Synch: Added lock() accessor methods to both
8677 ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal
8678 Yanay <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
8680 * ace/config-mvs.h: Added a #define for ACE_HAS_GETPAGESIZE.
8681 Thanks to Chuck Gehr for this information.
8683 * ace/LSOCK_Stream.h: Added a new typedef for PEER_ADDR that is
8684 associated with ACE_UNIX_Addr. Thanks to Mark Rabotnikov
8685 <mark@usp.elscintcorp.co.il> for suggesting this.
8687 Mon Jan 13 22:24:09 1997 David L. Levine <levine@cs.wustl.edu>
8689 * ace/OS.h: Added #undefs of sigemptyset and sigfillset on Linux
8690 when __OPTIMIZE__ is enabled. Yes, the system header on Linux
8691 really #defines them when optimizing! Thanks to an anonymous
8692 ACE user for pointing this out.
8694 * tests/tests_config.h: Dropped ACE_MAX_ITERATIONS back to 10.
8696 Sun Jan 12 16:59:52 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8698 * ace/Timer_List.cpp (schedule): Cleanup the code so that (1)
8699 timer_id never == -1 (in order to distinguish it from error
8700 return values and (2) so that we avoid an unnecessary check for
8701 operator new failure.
8703 * ace/OS.h: Added a new #define called ACE_DEFAULT_MAX_TIMERS,
8704 which specifies the maximum number of ACE_Event_Handlers
8705 supported by ACE_Timer_Heap.
8707 * ace/Proactor.cpp (ACE_Proactor): Updated the allocation of
8708 ACE_Timer_Queue so that it really points to an ACE_Timer_List by
8709 default. Naturally, this can be overridden by users.
8711 * ace/ReactorEx.cpp (open): Updated the allocation of
8712 ACE_Timer_Queue so that it really points to an ACE_Timer_List by
8713 default. Naturally, this can be overridden by users.
8715 * ace/Reactor.cpp (open): Updated the allocation of
8716 ACE_Timer_Queue so that it really points to an ACE_Timer_List by
8717 default. Naturally, this can be overridden by users.
8719 * ace: Added two new classes called ACE_Timer_List and
8720 ACE_Timer_Heap, which derive from ACE_Timer_Queue.
8721 ACE_Timer_List is essentially the old behavior of
8722 ACE_Timer_Queue, i.e., it uses an implementation of a linked
8723 list of ACE_Timer_Nodes. ACE_Timer_Heap, on the other hand,
8724 uses a heap-based callout queue, which is more appropriate for
8725 certain real-time applications.
8727 * ace/Timer_Queue: Revised the ACE_Timer_Queue implementation so
8728 that it's now an abstract base class with most of the
8729 implementation details pushed into the ACE_Timer_List and
8730 ACE_Timer_Heap subclasses.
8732 * ace/Timer_Queue.h: Made all the ACE_Timer_Queue methods public
8733 so that we can override them in a subclass (e.g., the new
8736 * examples/Logger/Acceptor-server/server_loggerd.cpp: Fixed this
8737 example application so that it only uses a single Reactor (the
8738 REACTOR::instance()) rather than two Reactors. Thanks to Sandro
8739 Doro <alex@aureus.sublink.org> for reporting this.
8741 * netsvcs/lib/Logging_Strategy.cpp: Fixed the #include of
8742 fstream.h and iostream.h to use the '<' '>' notation rather than
8743 the '"' and '"' notation. This avoids problems with running
8744 "make depend". Thanks to Rino Simioni <sir@necsy.it> for
8747 Sun Jan 12 18:20:49 1997 David L. Levine <levine@cs.wustl.edu>
8749 * ace/ACE.cpp (round_to_pagesize): fixed typo in reference to
8752 * ace/ACE.cpp: initialize ACE::pagesize_ to 0.
8754 * ace/config-irix*.h and config-win*.h: removed ACE_PAGE_SIZE
8755 definition because these platforms no longer use it.
8757 * tests/UNIX*.conf and Win32server.conf: replaced net_svcs
8760 Sat Jan 11 15:11:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8762 * ace/OS.i (thr_setprio): The POSIX implementation of
8763 ACE_OS:thr_setprio did not set the priority. It calls:
8765 pthread_setschedparam( thr_id, &policy, ¶m )
8769 prio = param.sched_priority.
8773 param.sched_priority = prio;
8775 This is now fixed. Thanks to John Bossom <John.Bossom@Cognos.COM>
8778 * ace/config-irix*.h: Modified all the IRIX config files to
8779 use the new ACE_HAS_GETPAGESIZE feature since this is necessary
8780 to differentiate between IRIX and IRIX64.
8781 Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
8784 * ace/ACE.cpp: Modified the round_to_pagesize() so that if
8785 a config.h file enables ACE_HAS_GETPAGESIZE then we use
8786 that function in preference to the value in config.h.
8787 Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
8790 * ace/ACE.cpp: Modified the round_to_pagesize() so that on
8791 platforms that allow the page size to be obtained dynamically
8792 we'll get that rather than replying on what it set in the
8793 config.h file. We'll cache this value in a static variable
8794 to speedup searches. Thanks to James Mansion for suggesting
8797 * apps/Gateway/Gateway: Finished adding support for thread-safe
8798 reference counting to the uses of ACE_Message_Block.
8800 * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced
8801 the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile
8802 correctly on non-MT platforms.
8804 Fri Jan 10 12:38:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
8806 * Added a COPYING file that explicitly states the copyright status
8809 * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h:
8810 By default, we'll revert to *not* enabling
8811 ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is
8812 well-support by the compiler since it breaks some application
8813 code that expects to use 3 template parameters for
8814 ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM
8815 macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr"
8816 tuple) in order to achieve portability in either case. Thanks
8817 to Karlheinz for pointing out the need for backwards
8820 Wed Jan 8 01:00:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8822 * tests/Message_Block_Test.cpp: Enhanced the torture test of the
8823 ACE_Message_Block so that it stresses the reference counting
8824 implementation in a multi-threaded environment.
8826 Wed Jan 08 10:26:45 1997 David L. Levine <levine@cs.wustl.edu>
8828 * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to
8829 allocator_strategry_ after deleting it; fixed template
8830 specializations (for g++) by using macros instead of class names;
8831 commented out template specializations because Service_Record.cpp
8832 already has them, and they should only appear once in the library
8833 in order to avoid link clashes
8835 * ace/Service_Object.cpp (ACE_Service_Object): reordered
8836 initializations in constructor
8838 * ace/Service_Record.cpp (ACE_Service_Record): reordered
8839 initializations in constructor
8841 * ace/config-linux-lxpthreads.h: added
8842 ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to
8843 James CE Johnson <jcej@lads.com> for tracking down this
8844 problem and testing the fix.
8846 Tue Jan 7 13:03:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8848 * ace/Message_Block: Continued to improve the
8849 ACE_Message_Block/ACE_Data_Block implementation.
8851 * ace/Message_Block: Added a new constructor to ACE_Message_Block
8852 that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for
8855 * ace/Log_Msg.cpp: Now that we've prevented signal handlers from
8856 occurring within critical sections of ACE_Log_Msg::log() we
8857 don't need to use the ACE_Recursive_Thread_Mutex anymore.
8858 Instead, we just need ACE_Thread_Mutex.
8860 * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in
8861 ACE_Log_Msg::log() that acquires the mutex that serializes
8862 output. This prevents nasty problems with recursive to
8863 ACE_Log_Msg::log() from within signal handlers.
8865 * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout
8866 of ACE_Time_Value::zero to the ACE_Reactor::notify() method when
8867 called in the ACE_Service_Config::end_reactor_event_loop().
8868 This prevents the Reactor from blocking indefinitely if there's
8869 no longer a thread to receive from the notification pipe.
8871 * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal
8872 nametest.cpp and nametest.h files. I'm not sure why they were
8873 still there, but they shouldn't have been!
8875 * ace/Synch.i (remove): this->owner_ should be set to -1 before
8876 calling this->release(). Thanks to Per Andersson
8877 <Per.Andersson@hfera.ericsson.se> for suggesting this.
8879 * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit"
8880 to the ACE_Thread_Control::exit() method. This controls whether
8881 we call ACE_OS::thr_exit() after removing the thread from the
8882 Thread Manager's internal table. This is necessary to work
8883 around pthread bugs on certain platforms (e.g., AIX and Linux).
8885 * ace/Synch.h: Removed the
8886 ACE_Recursive_Thread_Mutex::set_nesting() method since this
8887 isn't being used and is potentially dangerous. Thanks to Per
8888 Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
8890 * ace/XtReactor: Updated the XtReactor so that it uses the next
8891 internal Reactor implementation. Thanks to Mark Rabotnikov
8892 <mark@usp.elscintcorp.co.il> for reporting this.
8894 * ace/Task.i: Updated the grp_id(int) method to cache the group id
8895 in the task and then set it in the Thread_Manager, if there is
8896 one. Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com>
8897 for suggesting this.
8899 * ace/Log_Record.h: Updated the ACE_Log_Record class to use the
8900 new ACE_MAXLOGMSGLEN macro.
8902 * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By
8903 default this is 4k. However, you can reset it in the config.h
8904 file if you'd like to increase or decrease the size. Thanks to
8905 Anthony McConnell for suggesting this.
8907 * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and
8908 tss2.cpp examples and improved the comments. Thanks to Luca for
8911 * ace/Service_Object.cpp (fini): Added the "virtual" keyword to
8912 the new destructor of ACE_Service_Type. Thanks to David for
8915 * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block
8916 and ACE_Message_Block locking_strategy() methods so that they'd
8917 be defined as inline before being used. Thanks to David for
8920 Mon Jan 6 16:46:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8922 * ace/Service_Manager.cpp (fini): Only try to remove the
8923 ACE_Service_Manager from the Reactor if it's actually been
8924 registered in the first place (i.e., if it's get_handle() method
8925 does not return ACE_INVALID_HANDLE).
8927 * netsvcs/servers/svc.conf: Changed the name of the net services
8928 .so file from libnet_svcs to netsvcs so that it will work
8929 correctly with our new "cross-platform" svc.conf ACE::ldfind()
8930 strategy. Thanks to Marius Kjeldahl <marius@funcom.com> for
8933 * ace/Reactor.cpp (find): Added a strategic break and a check for
8934 handle_in_range(). Thanks to Tim for this help!
8936 * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part
8937 from the executable shared object file names in the svc.conf
8938 file so that it will work with the new "cross-platform" svc.conf
8939 ACE::ldfind() strategy. Thanks to Marius Kjeldahl
8940 <marius@funcom.com> for reporting this.
8942 * ace/Service_Record.cpp (fini): Added an extra assignment to a
8943 temporary const void *obj to avoid problems with MSVC++ and it's
8946 * ace/ReactorEx.h: Added a default parameter to
8947 ACE_ReactorEx::notify(). Thanks to Tim for noticing this.
8949 Sun Jan 5 10:48:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
8951 * tests: Added a new test for ACE_Message_Block, which is called
8952 Message_Block_Test.cpp (no surprise there ;-)). This test
8953 exercises the reference counting mechanisms.
8955 * ace/Message_Block.h: Made the destructors for ACE_Message_Block
8956 and ACE_Data_Block virtual, so that these classes can be
8957 subclassed and ACE_Message_Blocks can delete these
8958 subclasses (either via release() or delete). Thanks to Tilo
8959 Christ for suggesting this.
8961 * ace/Message_Block.cpp: Modified the implementation
8962 of ACE_Message_Block/ACE_Data_Block so that we always create
8963 an allocator_strategy_. By default, this strategy will be
8964 ACE_Allocator_Adapter <ACE_Malloc <ACE_Local_Memory_Pool, ACE_Null_Mutex> >;
8965 This greatly simplifies the code.
8967 * ace/Message_Block.h: It's now possible to assign a
8968 Message_Block's priority when you create it.
8970 * ace/Reactor: Sped things up some more by merging the Reactor's
8971 any_ready() and fill_in_ready() methods together. This reduces
8972 redundant computations.
8974 * ace/Reactor: Changed the name of ACE_Reactor::detach() to
8975 ACE_Reactor::remove_handler_i() and changed the name of
8976 ACE_Reactor::attach() to ACE_Reactor::register_handler_i().
8977 This is more consistent with the other naming schemes.
8979 * ace/Reactor.cpp: Reworked the implementation of the Handler
8980 Repository's unbind() method in order to simplfy the logic.
8981 Also merged in all the Reactor's detach() functionality into the
8982 unbind() method in order to localize all the handler removal
8985 * ace/Reactor[Ex].cpp: Added more descriptive errno entries for
8986 failed operations in the handler repository.
8988 * ace/Reactor.cpp: Modified the implementation of the Handler
8989 Repository's bind() method so that it reports an error if you
8990 try to register an Event_Handler for an invalid HANDLE.
8992 * ace/Reactor.cpp: Reimplemented the internals of the Reactor to
8993 prepare for the upcoming merge of the Reactor and ReactorEx to
8994 use a single code base.
8996 * ace/Timer_Queue.cpp: Modified the behavior of the expire()
8997 methods so that they return the number of ACE_Event_Handlers
8998 whose handle_timeout() method was called.
9000 Sat Jan 4 11:47:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
9002 * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will
9003 be recast as a strategy in subsequent implementations.
9005 * ace/Reactor.cpp: Added a new call,
9006 ACE_Handler_Repository::handle_in_range(), which checks to make
9007 sure that the HANDLE is within the range of 0 .. max_handlep1_.
9008 This factors out some redundant code.
9010 * ace/Reactor.cpp: Sped up the performance of the Reactor by
9011 removing redundant calls to
9012 ACE_Handler_Repository::invalid_handle() and
9013 ACE_Handler_Repository::find().
9015 * tests/Reactors_Test.cpp: Added a test for
9016 the new Reactor::notify() method with timeouts.
9018 * examples/Reactor/Misc/notification.cpp (svc): Added a test for
9019 the new Reactor::notify() method with timeouts.
9021 * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they
9022 use timed send() operations for their notify() methods. This
9023 makes it possible for users to bound the amount of time they're
9024 willing to wait to try and notify the Reactor. This is mostly
9025 useful to avoid infinite blocking if there is congestion in the
9026 Reactor's notification mechanism.
9028 * ace/ACE.cpp: Added a new timed send() method that uses the
9029 write() system call on UNIX and the socket send() call on Win32.
9030 This new method is used in the new ACE_Reactor::notify() method,
9031 which now supported timed notifications.
9033 * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code
9034 and reduce unnecessary #ifdefs, I've merged the max_handlep1_
9035 and cur_size_ fields (which are now called max_handlep1_).
9037 Fri Jan 3 10:47:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
9039 * ace: Replaced all uses of "delete mb" with mb->release ();
9041 * ace/Stream_Modules.cpp: Replaced the use of explicit bit
9042 twiddling with the ACE_BIT* macros.
9044 * ace/Message_Block.cpp: Make sure that we use the
9045 allocator_strategy_ to create the memory for the reference count
9046 since this may need to go into shared memory if that's the
9047 memory pool where the Message_Block allocations are coming from.
9049 * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and
9050 ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW,
9053 * ace/Message_Block.cpp (release): Make sure to "delete this"
9054 outside the scope of the locking_strategy_.
9056 * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type.
9057 Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
9060 * ace/Service_Object.i: Be smarter about how we reassign the name_
9061 pointer, i.e., delete the old one and make a copy. Thanks to
9062 Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
9065 * ace/Module.cpp (open): Rearranged the assignments to
9066 reader_q->mod_ and writer_q->mod_ so that we don't try to
9067 initialize through NULL pointers. Thanks to
9068 Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
9071 * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_
9072 to NULL so that the following change works correctly now.
9073 Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
9076 * ace/Service_Record.i (name): Make sure to delete [] (char *)
9077 this->name_ before allocating a new one. Thanks to
9078 Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
9081 * ace/Message_Block: Reworked the reference counting implemention
9082 so that reference counts are shared correctly amongst their
9083 various owners. This requires making a deep copy the "header"
9084 portion, but a shallow copy of the "data."
9086 * ace/Message_Block.cpp (ACE_Message_Block): Updated all three
9087 ACE_Message_Block constructors so that they all call the init()
9088 method. This centralizes all the initialization logic in one
9091 Thu Jan 2 00:42:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
9093 * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the
9094 cont_ field to 0 after "releasing" it so that we don't
9095 mistakenly think it's still around later on. This problem arose
9096 in the ACE_Message_Queue::close() method, which was trying to
9097 count the number of bytes being freed.
9099 * ace/Message_Queue.cpp (close): Fixed a subtle bug where we
9100 weren't actually deleting messages from the
9101 ACE_Message_Queue::close() routine. This should work now...
9103 * ace/Message_Queue.cpp (close): Replaced the use of "delete mb"
9104 with "mb->release()" since the Message_Blocks are now reference
9107 * ace/Message_Block: Enhanced the reference counting scheme so
9108 that you can increment and decrement the count by an arbitrary
9109 amount. This is particular useful when you know you'll be
9110 sending the same Message_Block to N consumers.
9112 * ace/Singleton: The dump() must be used same as instance()
9113 (without supplying an object) so it must be declarated *static*,
9116 static void dump (void);
9118 Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
9121 * examples/ASX/Event_Server: Completely rewrote and retested the
9122 ACE Event Server example. The new code is *much* easier to
9123 understand, has many more comments, is more robust, and compiles
9124 much faster since I removed many of the templates.
9126 * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the
9127 tranceiver so that it shuts down correctly when the Event_Server
9130 * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a
9131 problem where we were trying to select() on ACE_STDIN on Win32.
9132 Naturally, this doesn't work, so we used the
9133 ACE::register_stdin_handler() to fix this. Thanks to
9134 Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com>
9137 * examples/ASX/Event_Server/Event_Server/Options: Changed the
9138 Options class to be a Singleton...
9140 * ace/Task.h: Added "const" method qualifier to accessor methods
9141 like is_reader() and is_writer().
9143 Wed Jan 1 00:10:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
9145 * ace/Message_Block: Added a new static release() method that
9146 behaves like the non-static method release(), except that it
9147 checks if <mb> is 0. This is similar to CORBA::release(), which
9148 is useful if you want to eliminate lots of checks for NULL
9149 pointers before calling release() on them.
9151 * Updated all places in ACE where we use
9152 ACE_Event_Handler::READ_MASK when we should be using
9153 ACE_Event_Handler::ACCEPT_MASK.
9155 * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
9156 Changed the name of the acceptor class from Handle_Thr_Stream to
9157 Handle_Thr_Acceptor, which is more accurate.
9159 * ace/Reactor: Since we've now got an
9160 ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept
9161 connections asynchronously using Win32 overlapped I/O) we can
9162 now use this with the ACE_Reactor, as well. In particular, any
9163 time that we are registering a "passive-mode" socket acceptor we
9164 can now specify ACE_Event_Handler::ACCEPT_MASK. This is much
9165 more intuitive than using the READ_MASK (which never made any
9166 sense...). The ACE_Reactor now treats the ACCEPT_MASK as a
9167 READ_MASK internally, so you can still use READ_MASK if you'd
9168 like (i.e., this change doesn't break any existing code).
9170 * ace/Event_Handler: Changed "get_priority" and "set_priority" to
9171 simply "priority(void)" and "priority(int)" to be more
9172 consistent with other parts of ACE.
9174 * apps/Gateway/Gateway: Updated the Gateway so that the
9175 concurrency strategies can now be specified on the
9176 command-line (or in the svc.conf file), rather than being
9177 determined at compile-time. This is much more flexible.
9178 See the ./apps/Gateway/Gateway/README file for details.
9180 * apps/Gateway/Gateway: Verified that all the multi-threading
9181 strategies still work.
9183 * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we
9184 "release" the continuation field, rather than delete it, since
9185 its reference count may be > 1.
9187 * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that
9188 we always print a message to stderr if we're exiting,
9189 regardless... Thanks to David Levine for pointing this out.
9191 * apps/Gateway/Gateway: Moved all of the configuration file
9192 parsing logic *outside* of the Event_Channel into the Gateway
9193 class so that we wouldn't have unnecessary dependencies.
9195 * apps/Gateway/Gateway: Redesigned the Gateway so that the
9196 Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy)
9197 most of their work to the Event_Channel. This "lightweight
9198 proxy" design is an improvement since it is now possible to
9199 emulate the COS Event Channel semantics within the Event_Channel
9202 * Happy new year! Let's start a new ChangeLog to celebrate the