summaryrefslogtreecommitdiff
path: root/ChangeLog-98b
blob: f2cfa8461de116197ff33441cf43d8c5f9ab6620 (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
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>.

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.

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.

Wed May  6 02:57:40 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.

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.