summaryrefslogtreecommitdiff
path: root/ChangeLog-98b
blob: b67fc3321382194a632c5796a275e9ab99e0cb24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
Fri May 29 17:52:37 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.9 released.

Fri May 29 16:19:34 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

	* ace/Synch_T.h (class ACE_Guard): ACE_Guard's destructor was
 	  changing the errno value.  Fixed this to avoid doing so...
  	  Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
 	  this.

Fri May 29 15:33:41 1998  David L. Levine  <levine@cs.wustl.edu>

        * performance-tests/Misc/context_switch_time.cpp:
          added Synchronized Suspend-Resume Test.

Fri May 29 14:46:49 1998  James C Hu  <jxh@cs.wustl.edu>

	* ace/Makefile
	* ace/RB_Tree.h
	* ace/RB_Tree.cpp: Added changes to RB_Tree to enable overloading
	  of the comparison method.  Added class RB_Tree to the UNIX
	  Makefile.

	* ace/OS.cpp: Added some minor fixes to the difftime implementation.

	* ace/OS.cpp:
	* ace/OS.i:
	* ace/README:
	* ace/config-sunos4*:
	  Added ACE_LACKS_DIFFTIME macro because SunOS4 does not support
	  the Standard C difftime function.  Added a difftime
	  implementation for when such is the case.

Fri May 29 08:22:36 1998  Steve Huston  <shuston@riverace.com>

        * ace/Log_Msg.cpp, Trace.cpp: Changed decision for
          order-of-include/inline from ACE_WIN32 to
          ACE_HAS_ONE_DEFINITION_RULE.  This completes the changes needed
          to be able to use the newer versions of HP aC++.

        * ace/config-win32.h: Set ACE_HAS_ONE_DEFINITION_RULE.

Thu May 28 16:17:41 1998  Steve Huston  <shuston@riverace.com>

        * ace/README: Added ACE_HAS_ONE_DEFINITION_RULE.
        * ace/config-hpux-10.x-hpc++.h:
        * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_ONE_DEFINITION_RULE
          for aC++.  This is part of a set of changes to make ACE work
          with HP aC++ A.01.09 (10.20) and A.03.05 (11.00).  The other
          changes are being tested still.  Thanks _very_ much to Steve Coy
          for digging through this with HP and working out a solution!

Thu May 28 15:55:48 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * Added new configuration files for SCO.  Thanks to Arturo for
          this.

Thu May 28 13:57:50 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/Filecache.cpp: removed redundant template instantiations.

        * ace/config-lynxos.cpp: added undef ACE_HAS_TEMPLATE_SPECIALIZATION
          for LynxOS 3.0.0.

        * ace/Hash_Map_Manager.cpp,Map_Manager.cpp: replaced bare explicit
          destructor calls with ACE_DES_FREE_TEMPLATE{,2} macro invocations.

        * ace/OS.h: #define ACE_DES_FREE_TEMPLATE to be null on LynxOS.
          Without it, the g++ that's distributed with LynxOS 3.0.0 hopelessly
          chokes on explicit calls to template class destructors.  This
          hack could cause memory leaks, though currently ACE_DES_FREE_TEMPLATE
          is only used to call empty, non-virtual destructors (in
          Containers.cpp, Hash_Map_Manager.cpp, and Map_Manager.cpp).
          Also, added ACE_DES_FREE_TEMPLATE2 macro for use with two
          template arguments.  There's got to be a better way.

        * include/makeinclude/platform_lynxos.GNU: added LynxOS Version 3.0.0
          support.  It's optional at this point:  add VERSION=3.0.0 to your
          make invocation to enable.  Disabled -Wall with LynxOS 3.0.0.
          Enabled optimization.

Thu May 28 07:47:41 1998  Steve Huston  <shuston@riverace.com>

        * tests/SOCK_Connector_Test.cpp: Changed the "should succeed" test
          from port 25 (smtp) to 7 (echo) to try and get a higher success
          rate.  Thanks to David Levine for this suggestion.

Wed May 27 13:45:24 1998  Steve Huston  <shuston@riverace.com>

        * ace/ACE.cpp (handle_timed_complete): Fixed problem where
          successful connect was being reported as a failure (P90).

        * tests/SOCK_Connector_Test.cpp: Added a test for a successful
          non-blocking connect (tests fix from above).

Wed May 27 07:04:42 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/Service_Config.cpp: default debug_ to 1 instead
          of 0.  And the -d option now disables debug messages,
          instead of enabling them.  Thanks to Irfan for reporting
          that LM_DEBUG messages were lost without this fix.

        * ace/High_Res_Timer (calibrate): added calibrate () method
          to calculate the global scale factor on Pentiums.  It's
          called by the constructor for the first instantiation
          in a process.  (On WIN32, get_registry_scale_factor () is
          called instead of calibrate ().)

        * ace/Stats.cpp (sample): continue aggregating data even
          if there is overflow.  This allows, e.g., a mean to be
          calculated even if the standard deviation calculation overflow.

        * performance-tests/Misc/context_switch_time.cpp: don't run the
          Yield_Test on VxWorks because it takes too long.

        * ace/High_Res_Timer.*: moved calibration from constructor to
          global_scale_factor () accessor.

        * ace/Timeprobe.cpp: no longer need to explicitly calibrate the
          High_Res_Timer.

Tue May 26 22:25:18 1998  Stephen Coy  <stevec@wsa.com.au>

        * ace/Log_Msg.{h,cpp},Service_Config.cpp: added support for
          -d in Service_Config files to enable/disable LM_DEBUG messages.

Tue May 26 14:53:21 1998  Steve Huston  <shuston@riverace.com>

        * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed use of uninitialized
          variable, nr_subscribed.  Thanks to Nanbor for finding this.

Tue May 26 13:39:21 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/Timeprobe.cpp:
        * tests/Timeprobe_Test.cpp:
          Now egcs and Sun/CC are happy with this files.

Tue May 26 00:35:49 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * tests/Timeprobe_Test.cpp: Added new test.

        * ace/Timeprobe: Added the ability to have multiple event tables
          for time probes. Multiple maps can be used to chunk up the time
          probes.  Each one can be added by calling event_descriptions().
          Different tables are used internally by consulting the
          minimum_id for each table.  It is up to the user to make sure
          that multiple tables do not share the same event id range.

Sat May 23 21:52:49 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/Message_Block.h:
        * ace/Message_Block.i:
          The rd_ptr() and wr_ptr() are const methods now.

Sat May 23 00:18:58 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/ace_ce_dll.dsp: Updated settings for MIPS CPU.

        * tests/WinCE/*.dsp: Updated settings for MIPS CPU.

Fri May 22 16:00:03 1998  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>

        * tests/MT_SOCK_Test.cpp (spawn): We must check for !defined
          (ACE_LACKS_FORK) rather test for VxWorks or Win32.  Thanks to
          Steven Coy for reporting this.

Fri May 22 20:01:40 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/OS.h: moved ACE_IO_Vector declaration ahead of OS.i #include.

        * ace/OS.i (ACE_IO_Vector::buffer): added static cast of new_buffer
          to char *.

        * ace/OS.i (writev): changed return type from int to ssize_t to
          match declaration in OS.h.

Fri May 22 12:20:11 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * ace: Other parts of ACE were modified to use the new
          ACE_IO_Vector class.

        * ace/OS.h (ACE_IO_Vector): Added a new class that inherits from
          the correct IO_Vector class provided by the platform.

          writev() and readv() were being emulated on Win32 in ACE.  A new
          ACE_OS::writev() and ACE_OS::readv() has been added to ACE
          that uses WSASend() and WSARecv() respectively.  However, in
          order for you to exploit these new functions, you must use
          ACE_IO_Vector instead of iovec.  The ideal situation would have
          been to totally replace iovec with ACE_IO_Vector but that would
          break too much code. So, if you keep using iovec, you will use
          the expenses and slow emulations.  If you want to use WSASend()
          and WSARecv(), switch over to ACE_IO_Vector. It will work on
          both Win32 and non-Win32 platforms.

Fri May 22 07:53:03 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-linux-pthread.h: removed two
          ACE_LACKS_CONDATTR_PSHARED #defines.  That leaves just
          one, that's commented out.

        * performance-tests/Misc/context_switch_time.cpp: create all
          threads as detached so they don't have to be joined.  They
          test was using up resources on LynxOS, if a high -c option
          was used, without this change.

        * ace/config-sunos5.5-{g++,sunc++-4.x}.h,config-sunos5.5.h:
          merged config-sunos5.5-g++.h and config-sunos5.5-sunc++-4.x.h
          into config-sunos5.5.h.  That new file should be maintained
          for both compilers from now on.  The old files have been
          retained for backward compatibility.  The just #include
          config-sunos5.5.h.

        * ace/config-sunos5.6.h: #include config-sunos5.5.h instead
          of the separate Sun C++ and g++ configs.

        * include/makeinclude/platform_sunos5_sunc++.GNU:
          updated comment to reflect change to config-sunos5.5.h.

Fri May 22 07:30:23 1998  David L. Levine  <levine@cs.wustl.edu>

        * ACE version 4.5.8 released.

Fri May 22 07:26:06 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/Stats.cpp: added some casts to avoid MSVC++ warnings
          about narrowing.

        * ace/config-osf1-4.0.h: removed commented-out
          ACE_LACKS_{COND,MUTEX}ATTR_PSHARED.

Fri May 22 00:09:15 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Local_Tokens.{h,cpp} (ACE_Null_Token): Only defined default
          ctor/dtor explicitly when ACE_LACKS_INLINE_FUNCTIONS.

        * ace/Stats.cpp: Defined ACE_BUILD_DLL at the beginning.
          Win32 needs to define ULONGLONG literals as 999ui64.
          This is the only place that uses i64 literals.

Thu May 21 21:55:09 1998  David L. Levine  <levine@cs.wustl.edu>

        * ACE version 4.5.7 released.

Thu May 21 17:36:37 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-sunos5.6.h: added support for POSIX 199506
          extensions.  Thanks to J. Russell Noseworthy
          <rnosewor@objectsciences.com> for providing this support.

        * ace/Local_Tokens.{h,i}: inlined ACE_Null_Token ctor and dtor
          in class header because the clone () method needs the ctor
          inlined, and it's too difficult to get it right with macros.

        * tests/SString_Test.cpp (main): added ACE_ASSERT with s4 in
          it, because it was unused otherwise.

        * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
          changed #else to #elif, because it has a condition after it.

Thu May 21 15:28:07 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * tests/test_config.h: Modified to write output from tests into
          log file.  Notice that log files on CE have extension name
          ".txt" instead of ".log".

        * ace/OS.i (strrchr): Added UNICODE version of this function.

        * ace/Log_Record.{h,cpp}: Generalized message formatting on CE by
          adding a new method format_msg().

        * ace/Reactor_Impl.h: Removed an extra comma.

        * ace/XtReactor.cpp: Include "ace/Reactor.h"

        * tests/Recursive_Mutex_Test.cpp:
        * tests/Future.cpp: Removed iteration restriction on CE.

Thu May 21 12:13:36 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/ace_{dll,lib}.dsp: Added Stats.cpp into projects.

Wed May 20 23:02:41 1998  Steve Huston  <shuston@riverace.com>

        * ace/SOCK_Dgram_Mcast.cpp (subscribe): On Win32, if
          ACE::get_ip_interfaces finds less than 2 interfaces, call
          subscribe with "0.0.0.0".  This is sort of a hack and is meant
          only to help get things working again until ACE::get_ip_interfaces
          can be made to work correctly in all cases.

Wed May 20 10:42:12 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-mvs.h: enabled ACE_LACKS_CONDATTR_PSHARED and
          ACE_LACKS_MUTEXATTR_PSHARED.  Thanks to Chuck Gehr
          <GehrCR@LOUISVILLE.STORTEK.COM> for advising on this.

        * ace/config-linux-lxpthreads.h,config-lynxos.h: removed
          commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED #defines.

        * ace/config-sunos5.5-{sunc++-4.x,g++}.h: removed
          commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED.  Enabled
          ACE_HAS_CLOCK_GETTIME, because we always link with -lposix4.
          Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
          for inspiring the ACE_HAS_CLOCK_GETTIME enable.

        * ace/config-osf1-4.0.h: removed uncommented
          ACE_LACKS_CONDATTR_PSHARED, so that we can test whether
          it's necessary.

        * ace/Stats.*,Makefile: added ACE_Stats class.

        * performance-tests/Misc/context_switch_time.cpp: use
          ACE_Stats to calculate standard deviations.

Tue May 19 21:24:50 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * tests/Future_Test.cpp: Reduced the number of iterations on CE.

        * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile
          on non-threaded platforms.

Tue May 19 10:05:07 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * ace/SString.cpp (strlen): Renamed ACE_WString::wstrlen to
          ACE_WString::strlen.

        * ace/SString.i: Reordered functions to make g++ happy.

        * ace/ACE.cpp (hash_pjw): Changed ACE_OS::strlen to
          ACE_WString::strlen.

Tue May 19 09:52:08 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/config-irix6.x-g++.h:
        * ace/config-irix6.x-sgic++-nothreads.h:
        * ace/config-irix6.x-sgic++.h:
          Added ACE_LACKS_MUTEXATTR_PSHARED

Mon May 18 16:37:36 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * ace/SString.h (ACE_CString): Added the ability to hold on to
          user supplied character strings without having to make a copy.

        * ace/OS.h (ACE_OS): Added implementations for strrchr, strnchr,
          strnstr, and strstr.

        * ace/ACE.cpp (hash_pjw): Added new versions of these that work
          with user specified string length.

Mon May 18 12:24:40 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/config-*.h: Commented out most of the
          ACE_LACKS_CONDATTR_PSHARED so we can see what platforms really
          DON'T support this...

        * ace/OS.i (mutex_init): Added support for
          pthread_mutexattr_setpshared() so we can initialize POSIX
          pthreads process-wide mutexes.  Thanks to Ki-hyun Yoon
          <abird@nextware.co.kr> for suggesting this.

        * ace/config-sunos5.6.h: Added an #define for
          ACE_THREAD_POSIX_SEM.  Thanks to Ki-hyun Yoon
          <abird@nextware.co.kr> for reporting this.

        * ace/config-sunos5*.h: Removed the ACE_LACKS_RWLOCK_T stuff since
          it's unnecessary.  Thanks to Chris Lahey for reminding me of
          this...

Mon May 18 13:48:14 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile
          on non-threaded platforms.

Mon May 18 12:31:32 1998  Darrell Brunsch <brunsch@cs.wustl.edu>

        * ace/Service_Config.{h,i,cpp}: Added an accessor debug() for
          external access to the <debug_> variable.  More debug messages
          check this before displaying.

        * ace/Parse_Node.cpp: Checks Service_Config's debug flag before
          outputting debug messages.

Sun May 17 23:14:32 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * tests/Wince/*.dsp: Disabled precompiled headers.  They ate up
          all my disk space.

        * ace/Service_Config.cpp: <process_directive> takes a string of
          type ASYS_TCHAR.  Use ACE_WIDE_STRING to do the conversion.

        * ace/Log_Msg.{h,cpp} (ACE_ASSERT): Use unicode in ACE_ASSERT.
          (log): Don't exit the program for now.  Exiting program here
          destroys all debugging message in the window.

        * tests/Reader_Writer_Test.cpp: Reduced the number of iterations
          on WinCE.

        * ace/OS.i: Added ACE_OS::time () implementation for CE.

Sun May 17 21:45:07 1998  David L. Levine  <levine@cs.wustl.edu>

        * performance-tests/Misc/childbirth_time.cpp: changed type of
          MULTIPLY_FACTOR from int to size_t to avoid signed/unsigned
          comparison.

        * tests/Tokens_Test.cpp: synchronize start of thread svc ()
          routines.  Occasionally, the first thread would finish before
          any others had started.  The TSS objects would get cleaned
          up.  Then, the remaining threads would start up and make a big
          mess.

Sat May 16 15:10:46 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/Service_Config.h (ACE_Service_Config): Moved the
          process_directive() into the public part of the class so this
          can be called by applications one the Service Configurator is
          open.  Thanks to Tom Arbuckle
          <arbuckle@uran.informatik.uni-bonn.de> for suggesting this.

Sat May 16 14:12:09 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Thread_Manager.{h,i,cpp} (class ACE_Thread_Descriptor_Base):
          Extract thread handle and thread creation flags out from
          Thread_Descriptor into this new class.  This is necessary
          because after my last round of changes to improve
          ACE_Thread_Manager, I changed the <terminated_queue_> from
          holding Thread_Descriptor's to holding pointers to descriptor.
          This was a bad move because the address of these pointers had
          already been "freed."  The <terminated_queue_> now holds
          ACE_Thread_Descriptor_Base which contains only the information
          needed for manipulating <terminated_queue_>.  Thanks to Arturo
          for noticing this.

Sat May 16 03:23:35 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * performance-tests/Misc/childbirth_time.cpp (main): Added a new
          function to test the performance of ACE_Thread_Mutex in single
          thread _without_ any contention.

Fri May 15 22:55:51 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * tests/Recursive_Mutex_Test.cpp: Only iterate the test 50 times
          on CE as on Chorus.  Otherwise, as I'm using a CEdit to hold the
          test output, CEdit would overflow.

        * ace/OS.i (thr_getspecific): Don't check for return value of
          TlsGetValue on CE because CE doesn't seem to set the LastError
          correspondingly.
          (strchr): Added implementation on CE.

        * Added Activation_Queue.i and Strategies.i.

        * Combed thru all these files and added difinitions for ctor/dtor
          for a bunch of classes explicitly.  CE needs them.

          Activation_Queue.cpp Activation_Queue.h Dynamic.h Dynamic.i
          Event_Handler.h Event_Handler.i Get_Opt.h Get_Opt.i Handle_Set.h
          Handle_Set.i High_Res_Timer.h High_Res_Timer.i INET_Addr.h
          INET_Addr.i IO_SAP.h IO_SAP.i IPC_SAP.h IPC_SAP.i Local_Tokens.h
          Local_Tokens.i Log_Record.h Log_Record.i Malloc.h Malloc.i OS.h
          OS.i Obstack.cpp Obstack.h Obstack.i Parse_Node.h Parse_Node.i
          Pipe.h Pipe.i Process_Manager.h Process_Manager.i SOCK.h SOCK.i
          SOCK_Acceptor.cpp SOCK_Acceptor.h SOCK_Acceptor.i SOCK_CODgram.h
          SOCK_CODgram.i SOCK_Connector.h SOCK_Connector.i SOCK_Dgram.h
          SOCK_Dgram.i SOCK_Dgram_Bcast.h SOCK_Dgram_Bcast.i
          SOCK_Dgram_Mcast.h SOCK_Dgram_Mcast.i SOCK_IO.h SOCK_IO.i
          SOCK_Stream.h SOCK_Stream.i SString.h SString.i Sched_Params.h
          Sched_Params.i Select_Reactor.h Select_Reactor.i
          Service_Manager.h Service_Manager.i Service_Repository.h
          Service_Repository.i Service_Types.h Service_Types.i
          Shared_Object.h Shared_Object.i Signal.h Signal.i Strategies.cpp
          Strategies.h Strategies.i Strategies_T.cpp Strategies_T.h
          Synch.cpp Synch.h Synch.i Synch_Options.cpp Synch_Options.h
          Synch_Options.i Timer_Heap_T.cpp Timer_Heap_T.h Timer_List_T.cpp
          Timer_List_T.h Timer_Queue_T.cpp Timer_Queue_T.h
          Timer_Wheel_T.cpp Timer_Wheel_T.h.

Fri May 15 16:55:34 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/config-sunos5*.h: Automatically enable ACE_LACKS_RWLOCK_T if
          we're NOT using Solaris threads (since pthreads doesn't support
          readers/writer locks).

        * ace/Service_Config.cpp: Removed a duplicate template
          instantiation of template class
          ACE_Unbounded_Queue_Iterator<ACE_CString>.  Thanks to Ben Eng
          <ben@jetpen.com> for reporting this.

        * ace/OS: Fixed a number of problems that occurred when trying to
          use the PTHREAD implementation on Solaris without using
          ACE_HAS_STHREADS.  The problems related primarily to the
          ACE_OS::rw*() functions.  To fix the problems, the following
          changes were made.

          Remove the #if defined (ACE_HAS_STHREADS) from the case where we
          have the native rw*() functions.  We just use the
          ACE_LACKS_RWLOCK_T compile flag to determine whether we have the
          native functions.

          Without the ACE_HAS_STHREAD flag, ACE_rwlock_t comes up
          undefined.  To fix this, moved the definition at approx. line
          1868 above the #else at approx. line 1865 as the following:

          #if ! defined (ACE_LACKS_RWLOCK_T)
          #include <synch.h>
          typedef rwlock_t ACE_rwlock_t;
          #endif  // ! ACE_LACKS_RWLOCK_T

          Finally, the ACE_idtype_t type was also undefined.  To fix this,
          moved the typedef from within the #if defined (ACE_HAS_STHREADS) ||
          defined (DIGITAL_UNIX) block and create a new ifdef block:

          #if defined (ACE_HAS_IDTYPE_T)
          typedef idtype_t ACE_idtype_t;
          #else
          typedef int ACE_idtype_t;
          #endif

          Thanks to Chris Lahey <CLahey@cccis.com> for his through help at
          recognizing and fixing these problems.

Fri May 15 09:38:37 1998  David L. Levine  <levine@cs.wustl.edu>

        * bin/make_release: redirect cvs tag output to /dev/null.

        * performance-tests/Misc/context_switch_time (main): fixed
          printout of yield test time for other than the default
          number of iterations.

Fri May 15 09:29:57 1998  David L. Levine  <levine@cs.wustl.edu>

        * ACE version 4.5.6 released.

Fri May 15 08:25:19 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/Service_Config.cpp: fixed and added template instantations.

        * ace/Svc_Conf_y.cpp,etc/Svc_Conf_y.cpp.diff: removed compile
          warnings.

        * include/makeinclude/platform_sunos5_g++.GNU: use PIC instead of pic,
          because the TAO orbsvcs lib needs it.

        * Makefile: added .PHONY for phony targets.

Fri May 15 02:47:35 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.5 released.

Fri May 15 02:42:06 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.4 released.

Thu May 14 15:28:42 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/config-kcc-common.h: Added the ACE_HAS_USING_KEYWORD to the
          config file.  Thanks to Ben Eng <ben@jetpen.com> for reporting
          this.

        * examples/Service_Configurator/Misc: Updated the Timer_Service
          test to demonstrate the new service configurator feature.  It's
          AWESOME!

        * ace/Svc_Conf.h,
          ace/Svc_Conf.l:
          Added a super-cool new feature that allows us to parse service
          configurator directives from a string rather than from a
          svc.conf file.

        * ace/Svc_Conf.l (yywrap): Free up ace_yy_current_buffer in yywrap
          to prevent a memory leak.  Thanks to Paul Motuzenko
          <p_motuzenko@hotmail.com> for reporting this.

        * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Enhanced the
          implementation to make it easier to follow and to support the
          latest features of CPP-inclient.cpp.

        * ace/OS.h (ACE_OS): Added a wrapper for strcspn(3s).

        * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: Added more
          cool changes to the CPP-inserver.cpp example and renamed it.

Thu May 14 14:46:02 1998  Irfan Pyarali <irfan@cs.wustl.edu>

        * ace/OS.h: Moved the definition of ACE_Export before it is used.

Thu May 14 13:22:46 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/Message_Block.h:
        * ace/Message_Block.cpp:
          The static duplicate() method can take pointer to a const
          Message_Block.

Wed May 13 18:46:28 1998  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>

        * examples/IPC_SAP/SOCK_SAP/CPP-{inserver,inclient}.cpp: Added
          profile timing to the server so we can compute socket
          performance metrics.  Also generalized the tests so we can
          experiment with both oneway and twoway calls.

Wed May 13 19:20:27 1998  James C Hu  <jxh@cs.wustl.edu>

        * ace/OS.h:
        * ace/OS.i:
        * ace/OS.cpp: Added a substitute gets implementation for when
          ACE_LACKS_GETS.  The substitute is actually safer than gets, so
          I may end up making gets call the new routine instead of
          Standard C's.

        * ace/config-g++-common.h: Changed the g++ common file so that
          2.8.1 acts like EGCS does.  This worked on Solaris 2.5.1.  We'll
          see how other's fare.

Wed May 13 18:13:12 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.3 released.

Wed May 13 11:29:56 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
          My previous change to add print_results functionality when
          ACE_HAS_GETRUSAGE broke this on Win32.

        * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS):
          Made this macro defined for all versions of g++.

Wed May 13 09:26:48 1998  David L. Levine  <levine@cs.wustl.edu>

        * many *.{h,i,cpp,idl} files:  inserted RCS keyword string.

Wed May 13 00:35:25 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * ace: Added ACE_Export to a bunch of class in ACE.  Thanks to
          Gonzalo A. Diethelm (gonzo@ing.puc.cl) for pointing this out.

Tue May 12 15:16:04 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/config-WinCE.h:
        * ace/OS.h: Stopped using non-static object manager for CE.  This
          is causing some problem at process shutdown.

        * ace/Acceptor.cpp: Made CE friendly.

        * ace/Process.cpp ([~]ACE_Process_Options): Moved things around to
          avoid compilation errors on CE.  Secret: CE doesn't have
          environment variables.

Tue May 12 13:28:05 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/OS.h:
          The ACE_INLINE_FOR_GNUC macro must be defined (as the null
          token) if ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTION is not
          defined.

Tue May 12 12:30:55 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/README:
        * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS):
          Added this new macro to get around a bug which only happens in
          GNUC 2.7.xx.  It mistakenly refers to the template definition as
          the place where a function is used.

        * ace/OS.h (ACE_INLINE_FOR_GNUC): Added the macro to fix the GNUC
          bug.

        * ace/Thread_Manager.h: Added above macro to set_next and
          get_next.

Tue May 12 12:11:36 1998  Bob Laferriere  <laferrie@gsao.med.ge.com>

        * ace/Process.{h,cpp}: modifications to make the environment buffer
          and number of environment variables tunable in the constructor.
          I also fixed a logic error which previously attempted to write
          beyond an array bounds of the array of pointers into the
          environment buffer. I made the environment_argv_ buffer tunable
          as well. The new constructor takes the old hardcoded static sizes
          as the default dynamic sizes for backwards compatiblity.
          The behavior is to return -1 if the maximum buffer size or
          maximum number of environment arguments has been reached in
          following with the prior behavior. I opted not to make the members
          grow as needed so the class would still follow it's prior behavior.
          This would be simple to add, however.

Tue May 12 08:29:50 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/Malloc.cpp (ACE_Allocator::instance): replaced dynamic
          allocation of the default ACE_Allocator with allocation from
          the data segment.  Thanks to Ben Eng <ben@jetpen.com> for
          providing the stack trace that revealed the problem.

        * ace/Malloc.h: added comments to not add data members to
          ACE_Allocator or ACE_New_Allocator.

        * bin/g++dep: changed PATH to pick up /project/doc/pkg/gnu/bin/g++,
          and removed GNUG_INCLUDE.  Thanks to Ganesh Pai <gpai@voicetek.com>
          for reporting problems with the old version on Linux.

Tue May 12 02:59:27 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * performance-tests/Misc/childbirth_time.cpp: Added ACE_OS::sleep
          (0) before all timing sections start.  This ensures we own a
          fresh time slice when the timing begin and reduce the chances of
          getting preempted

Tue May 12 00:42:05 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * bin/dsp2dsp.pl: This file clones a new MSVC 5.0 dsp file based
          on setting from another dsp file.  It is most useful in adding
          new project files into tests/.

        * tests/WinCE/*: New project files.  Updated the workspace.
          Please see CE-status for the current progress.

        * tests/Buffer_Stream_Test.cpp:
        * tests/Conn_Test.cpp:
        * tests/Enum_Interfaces_Test.cpp:
        * tests/Handle_Set_Test.cpp:
        * tests/Hash_Map_Manager_Test.cpp:
        * tests/Message_Block_Test.cpp:
        * tests/Reactors_Test.cpp:
        * tests/Thread_Manager_Test.cpp:
        * tests/Thread_Mutex_Test.cpp: Made CE friendly.

        * tests/test_config.h: Moved some common definitions shared among
          CE and other platforms out.

        * ace/Acceptor.cpp:
        * ace/Acceptor.h:
        * ace/Connector.cpp:
        * ace/Connector.h:
        * ace/Stream.cpp:
        * ace/Svc_Handler.cpp:
        * ace/Svc_Handler.h:
        * ace/Synch.h:
        * ace/Synch.i: CE stuff.

        * ace/config-WinCE.h: Defined ACE_DEFAULT_SERVER_HOST in UNICODE
          here to overwrite the default setting.

        * ace/Synch.i (ACE_Lock): CE needs a default ctor here.

Mon May 11 15:43:01 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * tests/WinCE/ce_tests.dsw:
        * tests/WinCE/Atomic_Op_Test.dsp:
        * tests/WinCE/Barrier_Test.dsp:
        * tests/WinCE/Basic_Types_Test.dsp:
        * tests/WinCE/Map_Manager_Test.dsp: Added/Updated project files.

        * tests/Atomic_Op_Test.cpp:
        * tests/Barrier_Test.cpp:
        * tests/Basic_Types_Test.cpp: Made them CE friendly.

        * ace/config-WinCE.h: Only define ACE_LACKS_INLINE_FUNCTIONS when
          building debug version of ACE for SH series CPU.

        * WindozeCE/WindozeCEDlg.cpp: Updated the initial message after the
          display window but before ACE console progrm started.


Mon May 11 15:43:01 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/OS.{i,cpp}: Moved CE's impelmentation of ACE_OS::fprintf to
          cpp file.

Mon May 11 15:15:24 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/Thread_Manager.h:
          Removed bogus ACE_INLINE macros in class declaration, they were
          making the SGI compiler *very* unhappy.

Mon May 11 15:11:11 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/OS.cpp (ctime_r): Renamed the fmtstr to
          ACE_OS_CTIME_R_FMTSTR for we may need to use similar scheme to
          fix other bugs in the future.

Mon May 11 14:50:47 CDT 1998  Everett Anderson  <eea1@cs.wustl.edu>

        * ace/Name_Proxy.cpp: Changed one last recv to recv_n.

Mon May 11 13:14:22 1998  Chris Gill  <cdgill@cs.wustl.edu>

        * ace/RB_Tree.{cpp,h,i}: (new) Red-Black Tree data structure
          implementation.  A Red-Black Tree is an efficient
          self-balancing binary tree that uses recoloring to
          minimize rotations while rebalancing on insertion or
          deletion of a tree node.  Items in the tree are stored
          according to a key provided at insertion.  This
          implementation is an OO rendition of the ADT described
          in Cormen, Leiserson, Rivest, "Introduction to Algorithms"
          (c) 1990, MIT.

Mon May 11 12:31:41 1998  Steve Huston  <shuston@riverace.com>

        * ace/OS.h: Made ACE_LD_SEARCH_PATH, ACE_LD_SEARCH_PATH_SEPARATOR_STR,
          ACE_DLL_PREFIX, ACE_DLL_SUFFIX settable via config.h.

        * ace/config-hpux-10.x.h:
          ace/config-hpux11.h: Set ACE_LD_SEARCH_PATH, ACE_DLL_SUFFIX.
          Thanks to Kirill Rybaltchenko and David Levine for identifying
          this problem.

Mon May 11 12:27:05 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/ACE.cpp (send_n): retry if ACE::send () fails due to
          EWOULDBLOCK.  Thanks to Dave Brackman <dbrackma@OhioEE.com>
          for reporting this.

        * tests/Env_Value_Test.cpp (main): check return values of
          options.setenv () calls.  Thanks to Bob Laferriere
          <laferrie@gsao.med.ge.com> for recommending this.

        * include/makeinclude/platform_vxworks5.x_ghs.GNU: instead of
          using GNU ranlib386 after using GHS ax for i386 targets, just
          use GNU ar386.

        * ace/gethrtime.cpp: added some comments about GHS asm support.

        * java/netsvcs/{Logger,Time}/Makefile,
          java/tests/netsvcs/Logger/Makefile:
          replaced WRAPPER_ROOT with ACE_ROOT.

Mon May 11 05:14:18 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/config-WinCE.h: Added ACE_HAS_NON_STATIC_OBJECT_MANAGER.  CE
          console programs have to set this flag because the main
          functions is actually renamed and running in a threads.

        * tests/test_config.h: Excluded class and macros to redirect
          debugging messages to files under CE.  This make debugging a bit
          easier but we should eventually put them back under CE.

        * tests/Map_Manager_Test.cpp: Made CE friendly.

        * ace/Hash_Map_Manager.cpp: Some ACE_ERROR were not CE friendly.

        * ace/Profile_Timer.{h,i}:
        * ace/Synch.{h,i}: Moved inline function definitions to Synch.i
          file.  Windows CE can't grok any inline at all.

Mon May 11 02:43:45 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * performance-tests/Misc/childbirth_time.cpp (main): Added
          a new method for benchmarking ACE_Thread_Manager::spawn_n.
          Added other cosmetic changes.

Sun May 10 23:20:36 1998  Irfan Pyarali  <irfan@cs.wustl.edu>

        * ace/Token.cpp: Adding more debugging statements.

        * ace/Asynch_Acceptor.cpp (should_reissue_accept): Added template
          method that decides whether a new asynchronous accept should be
          issued.

Sun May 10 23:28:57 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/OS.cpp(inherit_log_msg):
        * ace/Log_Msg.cpp (thr_desc): Wait on Thread_Descriptor's lock
          instead of the "global" Thread_Manager lock.

        * ace/Thread_Manager.cpp: Moved acquire_release() from
          ACE_Thread_Manager to ACE_Thread_Descriptor.  This method is
          called from ACE_Log_Msg::thr_desc to prevent a thread from using
          its thread descriptor before it is fully built.  The change
          relieve spwaned threads from waiting for other threads created
          in the same spwan_n call to be created before it can start
          running.

          (insert): Added an extra argument to control whether we want to
          insert the newly created thread into ACE_Thread_Manager's thread
          table or not.  Notice that it is default to 1 to remain the
          original behavior in case anyone is using this class/function
          directly in their code.  However, in ACE_Thread_Manager, we
          always prevent it from inserting because we always register
          thread descriptors from spawn_i.

Sun May 10 01:51:29 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/OS.h: Renamed ACE_OS::Time_To_The_Beginning to
          ACE_OS::FILETIME_to_timval_skew.

        * ace/OS.cpp: Found the problem in ACE_OS::ctime_r.  An internal
          compiler bug (?) caused the bug.  The solution: move the format
          string out as a const string instead of putting it in sprintf
          directly.  Weird.

        * ace/Log_Record.{h,cpp}: Made priority_name_ and its access
          function CE friendly.

Sat May  9 20:09:13 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Thread_Manager.h: Changed the type of lock used by
          <thread_desc_freelist_> to ACE_SYNCH_MUTEX.  Or else, it won't
          compile on platforms that doesn't support thread.  Thanks to
          Woody Zenfell <woody@arl.wustl.edu> for reporting this.

Fri May 08 22:29:01 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/SOCK_Dgram_Mcast.cpp (subscribe): CE UNICODE related fix.

Fri May  8 14:18:46 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Thread_Manager.h (ACE_Thread_Descriptor): Added ACE_INLINE
          to declarations of set_next and get_next to get around a bug in
          a version of g++.

Fri May  8 11:57:23 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/Map_Manager.cpp: Fixed a bug where we weren't calling
          close_i() when resizing the buffer.

        * ace/Thread_Manager.cpp (set_grp): In
          ACE_Thread_Manager::{get,set}_grp we must check to see that we
          have a valid pointer after the ACE_FIND.  Otherwise a seg fault
          occurs.  Thanks to Chris Lahey <CLahey@cccis.com> for reporting
          this.

Fri May 08 09:47:50 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-linux-common.h: only use ACE_HAS_POLL with glibc2.
          Thanks to Saneyasu <sane@sail.t.u-tokyo.ac.jp> for reporting
          this.

        * ace/OS.i (sleep): On Linux without ::poll () (prior to glibc),
          copy the ACE_Time_Value argument because the system modifies it.

        * include/makeinclude/platform_osf1_4.0.GNU: moved -lm from LIBS
          to MATHLIB.

        * performance-tests/UDP/Makefile: added $(MATHLIB) to LDLIBS.

        * tests/Aio_Platform_Test.cpp (have_asynchio): use
          _SC_LISTIO_AIO_MAX instead of _SC_AIO_LISTIO_MAX if it's
          #defined.  It is on DU 4.0.

Fri May 08 08:43:42 1998  Steve Huston  <shuston@riverace.com>

        * include/makeinclude/platform_hpux_gcc.GNU: Added $(PIC) to
          definition of SOFLAGS.  Thanks to Kirill Rybaltchenko
          <Kirill.Rybaltchenko@cern.ch> for this fix.

        * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added code for Win32 so that
          if a subscribe is done without specifying an interface, the mcast
          address is subscribed to on each non-loopback interface.  This works
          around a bug in NT's winsock in the presence of multiple IP
          interfaces.  Won't hurt 95 - will just run a bit slower than it
          otherwise would.

        * examples/Reactor/Multicast/Multicast.{mdp,mak}: Added MSVC 4.2
          workspace for this example.

Fri May  8 03:43:25 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Thread_Manager.{h,cpp}: Added yet one more member variable
          into Thread_Descriptor to keep track of registration of
          Thread_Descriptors.  By adding this variable, we can avoid an
          extra locking in remove_thr for most cases (normal cases ;-).
          Thanks to the inspiration from Arturo Montes
          <mitosys@colomsat.net.co>.

Thu May 07 22:06:13 1998  Ben Eng  <ben@jetpen.com>

        * ace/config-kcc-common.h,config-linux-{common,kcc}.h: updated
          KCC/Linux support, and integrated into config-linux-common.h.

Thu May  7 20:32:20 1998  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>

        * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
          (main): Oops, we need to move the unlink() AFTER we create the
          file...  Thanks to Sandro Doro <doros@aureus.sublink.org> for
          reporting this.

Thu May 07 19:08:22 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.2 released.

Thu May  7 14:10:41 1998  Carlos O'Ryan  <coryan@cs.wustl.edu>

        * ace/Timer_Hash_T.h:
        * ace/Timer_Hash_T.cpp:
        * ace/Timer_Heap_T.cpp:
        * ace/Timer_Wheel_T.cpp:
          The classes had a INHERITED typedef for the base class, but
          Solaris defines a macro by the same name. This causes very weird
          problems with EGCS (and probably other g++ versions).

Thu May 07 04:15:23 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Profile_Timer.cpp (elapsed_time): Treat Win32 differently
          so I can use this function with WinCE Emulation build.  The
          problem is that Win32 can't convert __int64 to double.

        * ace/OS.{h,cpp} (ACE_Time_Value): (Win32 only) Added a new static
          const member (Time_To_The_Beginning) of type DWORDLONG (unsigned
          _int64) to adjust the time skew between FILETIME and POSIX time.
          Changed the type of _100ns to ULARGE_INTEGER to eliminate
          unnecessary computation.

Wed May  6 23:58:40 1998  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>

        * ace/XtReactor.cpp:
          The signature for the open() method of the notify pipe has been
          modified.

Wed May  6 23:28:47 1998  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>

        * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp:
          Fixed a couple of mistakes that were causing the UNIX domain
          sockets not to work.  Thanks to Sandro Doro
          <doros@aureus.sublink.org> for recommending this.

        * performance-tests/Misc/context_switch_time.cpp (svc): An 'i'
          was being defined twice, gorp!  It's fixed now!

Wed May 06 22:00:14 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-linux-common.h: only #define
          ACE_HAS_4_4BSD_SENDMSG_RECVMSG with __GLIBC__.  Thanks
          to Chanaka Liyanaarachchi <chanakal@ittc.ukans.edu> for
          reporting the lack of CMSG_DATA support on RedHat 4.2.

Wed May 06 18:35:21 1998  Steve Huston  <shuston@riverace.com>

        * ace/ACE.cpp (get_ip_interfaces): Reset buf_len before each call to
          get_reg_key to get registry value for device's IP address.  It gets
          overwritten on each call to get_reg_key.

        * include/makeinclude/platform_mvs.GNU: Added definition for PIC.
          Though not related to position-independent-code, it is a switch that
          makes shared lib builds work right.  Removed the old SOBUILD def.
          Thanks to Chuck Gehr for helping with this strategy.

Wed May 06 16:32:53 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Filecache.h (ACE_Filecache_Handle): Removed
          ACE_EXPORT_DECLARE and specified ACE_Export directly for
          ACE_Filecache_Handle and ACE_Filecache in calss declarations.

        * ace/Thread_Manager.{h,i,cpp}: A bug was found by Arturo Montes
          <mitosys@colomsat.net.co> who noticed that when a thread was
          spawned and then exited immediately, its thread descriptor might
          get freed before even get registered into the thread table kept
          by the Thread_Manager.  Although it doesn't make any sense to
          spawn a thread just to let it return immediately, a middleware
          shouldn't restrict the way how users want to use it.

          I got around this problem by adding a lock into
          Thread_Descriptor.  Before spawning a thread, the Thread Manager
          will first grab the lock.  It won't release the lock until
          calling append thread, at which point, the Thread_Descriptor of
          the thread has been stashed into the table.  Removing the
          Thread_Descriptor also requires to hold this lock and release
          the lock before the Thread_Descriptor is "freed."  Therefore,
          if a thread exit before its Thread_Manager ever gets a chance to
          register it, it will block and waiting.

          The type of the lock is defined by ACE_DEFAULT_THREAD_MANAGER_LOCK
          which, by default, is ACE_Thread_Mutex.  User can change the
          definition by defining in their config.h file.  For example, if
          you can be sure that all your threads will run for an extended
          long time (which, in most case, should be true,) you can disable
          this feature by defining this as a ACE_Null_Mutex to speed up
          spawning and termination of threads.

          (thread_desc_freelist_): Added a free list to Thread_Manager to
          recycle Thread_Descriptor.  By default, this free list
          pre-allocate 0 Thread_Descriptor and has low-water-mark of 1,
          increment count 1 and a huge (25000) high water mark.  That is,
          if you use a Thread_Manager for an extended period of time, you
          won't have to dynamically allocate memory for Thread_Descriptor
          for every thread after your system is stable (the thread count
          fluctuates between some certain values.)

          There are two ways to change the settings.  First, by defining
          ACE_DEFAULT_THREAD_MANAGER_LWM, ACE_DEFAULT_THREAD_MANAGER_HWM,
          ACE_DEFAULT_THREAD_MANAGER_INC, and
          ACE_DEFAULT_THREAD_MANAGER_PREALLOC in your <config.h> file.
          This changes the default setting of your ACE.  (The global
          Thread_Manager use this setting.)  Or, you can specify these
          values when creating a Thread_Manager.

        * ace/Free_List.cpp (alloc,dealloc): Don't grab the lock in these
          two functions.  They only get called from add() and remove()
          which hold the lock before making the call.  Actually, they also
          gets called from the constructor and destructor.  But that
          shouldn't be a problem.

        * tests/Reactor_Notify_Test.cpp (run_test): Moved the #endif of
          ACE_HAS_THREADS down to avoid compilation error on non-threaded
          platforms.

Tue May  5 14:12:08 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: Added a
          platform config file courtesy of Arturo Montes
          <mitosys@colomsat.net.co>.

Tue May 05 08:35:18 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-irix6.x-sgic++-nothreads.h: updated the determination
          of ACE_SIZEOF_LONG_DOUBLE.  Thanks to Bob Laferriere
          <laferrie@gsao.med.ge.com> for providing the fix.

        * include/makeinclude/platform_sunos5_g++.GNU: use -gstabs+ instead
          of -g on Solaris86.

        * etc/Svc_Conf_l.cpp.diff: updated.  It's magic, Nanbor :-)
          The problem seems to be due to an old version left in
          /tmp/Svc_Conf_l.cpp, which confuses flex.

        * ace/config-linux-common.h,config-g++-common.h: moved
          ACE_HAS_PENTIUM (with i386) from config-linux-common.h
          to config-g++-common.h.

        * ace/config-linux-common.h: added ACE_HAS_POLL, so we
          don't use ::select () in ACE_OS::sleep ().  Linux's
          ::select () modifies its timeout argument!

        * ace/OS.i (gethrtime): added RDTSC support for all g++
          _and_ ACE_HAS_PENTIUM platforms.

        * ace/config-vxworks5.x.h: added ACE_HAS_PENTIUM with GHS
          on Intel platforms.

        * ace/Makefile: for GHS on Intel 8086, build gethrtime.cpp.
          It's used to provide a high-resolution time using the
          Pentium RDTSC instruction.  I don't know how to get
          GHS' asm to do it, so it uses g++.

        * ACE-INSTALL.html: added note about carefully installing
          egcs on Linux.  Thanks to Kurt Sussman <kls@best.com> for
          tracking down the cause of mysterious link failures.

Tue May 05 02:15:49 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Svc_Conf_l.cpp: I know, I know.  I shouldn't mess with this
          file directly.  But I couldn't manufacture this file even with
          the stock Svc_Conf.l using Doug's flex.  So, I reckon I'll just
          check this in now and fix the Svc_Conf_l.diff later.

        * ace/Service_Config.{h,cpp} (process_directive): Standard CE
          stuff.

        * WindozeCE/WinAdapter*.*:
        * WindozeCE/WindozeCE*.*: Replaced the old adapter for CE with a
          new one.  The new version allows uses to scroll thru the
          "console" output.

Mon May 04 17:09:39 1998  David L. Levine  <levine@cs.wustl.edu>

        * performance-tests/Misc/context_switch_time.cpp: lots of
          cleanup.  The main changes were the use of ACE_THR_PRI_FIFO_DEF
          for the default therad priority, and removal of some
          unnecessary thr_yield () calls.

        * tests/Aio_Platform_Test.cpp: added arguments to main (),
          removed #includes that are already in ace/OS.h, and added
          ACE_START_TEST/ACE_END_TEST calls.

Mon May  4 13:08:18 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/config-sunos5.6.h: Removed a mysterious "30" at the end of
          an #undef.  Thanks to J. Russell Noseworthy
          <rnosewor@objectsciences.com> for reporting this problem.

Mon May 04 08:49:09 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/OS.cpp (ACE_Thread_Adapter::invoke): with ACE_NEEDS_LWP_PRIO_SET,
          added the call to ACE_OS::thr_setprio () so that the LWP priority
          will be set if running in the RT class.  Applications no longer
          have to be concerned with this.

        * performance-tests/Misc/preempt.cpp (svc): removed
          ACE_OS::thr_setprio () calls to set LWP priority, now that ACE
          handles that internally.

        * include/makeinclude/platform_*linux.GNU: added "s" to
          ARFLAGS, so that ranlib is no longer necessary.

Sun May 03 22:37:38 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Parse_Node.cpp (open_handle): WinCE doesn't support
          ExpandEnvironmentStringA.

        * ace/config-win32-common.h: Only define ACE_HAS_GETRUSAGE when
          ACE_HAS_WINNT4 != 0.  Thanks to Paul Motuzenko
          <p_motuzenko@hotmail.com> for reporting this.

Sun May 03 01:58:47 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>

        * ACE version 4.5.1 released.

Sat May  2 14:35:04 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * tests/Reactor_Notify_Test.cpp: Factored out some common code to
          make the test more concise.

        * tests/Reactor_Notify_Test.cpp: Modified the test to check
          whether our new mechanism for disabling the notify pipe works
          correctly.

        * ace/{WFMO,Select}_Reactor[_Impl]: Added the
          "disable_notify_pipe" flag in the constructor in order to
          disable this feature and save on descriptors if they aren't
          required.  Thanks to Tom Venturella <tventurell@mdc.com> for
          motivating this.

Sat May 02  Alexander Babu Arulanthu  <alex@merengue.cs.wustl.edu>

        * tests/Aio_Platform_Test.cpp: Included this test program for
        testing a platform for Asynchronous I/O options.
        * tests/Makefile (BIN): Added Aio_Platform_Test.

Fri May 01 17:52:32 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/Arg_Shifter.{h,cpp}: Added macros ACE_Export and
          ACE_BUILD_DLL respectively.

        * ace/ACE_Library.mak:
        * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project.

Fri May  1 13:52:32 1998  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * ace/Addr: Made the destructor for ACE_Addr virtual so that
          subclasses can be deleted correctly.  Thanks to Wei Chiang
          <chiang@horizon.ntc.nokia.com> for reporting this.

        * ace: Added Arg_Shifter from TAO and renamed it to
          ACE_Arg_Shifter.

        * ace/IOStream_T.i (recv_n): ACE_IOStream<STREAM>::eof (void) had
          a subtle bug if it is called when a get operation (>>) has not
          failed.  Thanks to James CE Johnson <ace-users@lads.com> for
          reporting this bug.

        * examples/Connection/misc/Connection_Handler.cpp: Make sure to
          activate() each active object using THR_DETACHED so we don't run
          out of threading resources.  Thanks to Brad Walton
          <brad.walton@transnexus.com> for reporting this.

        * ace/Timer_Queue_Adapters.cpp: Rather than returning the result
          of schedule_ualarm(), the
          ACE_Async_Timer_Queue_Adapter<TQ>::schedule() method should
          return the timer id.  Thanks to James Garrison
          <jhg@austx.tandem.com> for reporting this.

        * examples/System_V_IPC/SV_Message_Queues: Renamed the so-called
          "ACE_Message_Block" to "Message_Block" so it wouldn't be as
          confusing.  Thanks to Ganapathi <guns@fs.IConNet.NET> for this
          suggestion.

Fri May 01 17:52:32 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/ACE_Library.mak:
        * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project.

Fri May 01 14:09:21 1998  Steve Huston  <shuston@riverace.com>

        * ace/OS.h: Changed ACE_hrtime_t from signed to unsigned on Win32
          to insure correct results from ACE_High_Res_Timer::elapsed_time
          calculations.  Fixes bug P87.

Fri May 01 11:52:47 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ace/OS.h: Forgot to redefine ASYS_INLINE after #undef it.

        * ace/OS.i (last_error): On Win32, this should also update errno
          after calling SetLastError ().  Thanks to Steve for pointing
          this out.  Fixes bug P88.

Fri May 01 10:01:09 1998  David L. Levine  <levine@cs.wustl.edu>

        * ace/config-sunos5.6.h: replaced config-sunos5.6-sunc++-4.x.h
          with this config file, which supports both Sun C++ and g++.

        * ace/OS.i (gethrtime): for the default (::gettimeofday) case,
          use 64-bit instead of 32-bit arithmetic by casting to ACE_hrtime_t.

        * ace/Basic_Types.{h,i}: added ACE_U_LongLong::operator *.

        * ace/Env_Value_T.cpp: added #include of Env_Value_T.h.

Fri May  1 00:35:40 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * include/makeinclude/wrapper_macros.GNU
          (ACE_LDSO_Version_Number): Fixed the problem of not able to
          parse a formal release number from ace/VERSION.

Thu Apr 30 15:53:58 1998  Nanbor Wang  <nanbor@cs.wustl.edu>

        * ACE.{h,i,cpp}:
        * DEV.{h,i,cpp}:
        * DEV_Connector.{h,i,cpp}:
        * DEV_IO.{h,i,cpp}:
        * Date_Time.{h,i,cpp}:
        * FIFO_Recv.{h,i,cpp}:
        * FIFO_Recv_Msg.{h,i,cpp}:
        * FIFO_Send.{h,i,cpp}:
        * FIFO_Send_Msg.{h,i,cpp}:
        * FILE.{h,i,cpp}:
        * FILE_Connector.{h,i,cpp}:
        * FILE_IO.{h,i,cpp}:
        * IO_SAP.{h,i,cpp}:
        * IPC_SAP.{h,i,cpp}:
        * LSOCK.{h,i,cpp}:
        * LSOCK_CODgram.{h,i,cpp}:
        * LSOCK_Connector.{h,i,cpp}:
        * LSOCK_Dgram.{h,i,cpp}:
        * LSOCK_Stream.{h,i,cpp}:
        * Log_Record.{h,i,cpp}:
        * Pipe.{h,i,cpp}:
        * SOCK.{h,i,cpp}:
        * SOCK_CODgram.{h,i,cpp}:
        * SOCK_Connector.{h,i,cpp}:
        * SOCK_Dgram.{h,i,cpp}:
        * SOCK_Dgram_Bcast.{h,i,cpp}:
        * SOCK_Dgram_Mcast.{h,i,cpp}:
        * SOCK_IO.{h,i,cpp}:
        * SOCK_Stream.{h,i,cpp}:
        * SPIPE.{h,i,cpp}:
        * SPIPE_Connector.{h,i,cpp}:
        * SPIPE_Stream.{h,i,cpp}:
        * SV_Message_Queue.{h,i,cpp}:
        * SV_Semaphore_Complex.{h,i,cpp}:
        * SV_Semaphore_Simple.{h,i,cpp}:
        * UPIPE_Acceptor.{h,i,cpp}:
        * UPIPE_Connector.{h,i,cpp}: Added inline control for these
          supposedly default inline functions.

        * ace/config-WinCE.h: Added ACE_LACKS_INLINE_FUNCTIONS.

        * ace/OS.h: Added a new macro ASYS_INLINE for platforms that don't
          support inline properly.  This is controlled by the macro
          ACE_LACKS_INLINE_FUNCTIONS.

          Walked thru all macros and indented them properly.

        * ace/README: Added documentation for ACE_LACKS_INLINE_FUNCTIONS.