summaryrefslogtreecommitdiff
path: root/ChangeLog-99b
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-06-25 21:22:05 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-06-25 21:22:05 +0000
commitd2c1066045bceca2cc137e59b9dd726624e28e0f (patch)
tree45174cd5e825d1ad6281ca7ddf63adb24631da24 /ChangeLog-99b
parenta99f6044bebb5dd954185375ed5173206fc7d439 (diff)
downloadATCD-d2c1066045bceca2cc137e59b9dd726624e28e0f.tar.gz
.
Diffstat (limited to 'ChangeLog-99b')
-rw-r--r--ChangeLog-99b100
1 files changed, 90 insertions, 10 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b
index fe640961a7c..54137774d17 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,3 +1,93 @@
+Fri Jun 25 16:03:59 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
+
+ * ace/Future.cpp: Fixed a couple of places where the set() method
+ didn't have the new *this parameter added.
+
+ * ace: Added Future_Set.{h,cpp} and Future_Node.{h,cpp}, as well
+ as the new Future.{h,cpp} files to the ACE release. Thanks to
+ John Tucker <jtucker@infoglide.com> for contributing these.
+
+ * ace/Synch.h: Added a comment pointing out that Solaris
+ threads do not support timed acquire(). Thanks to Darren
+ DeRidder <darren.deridder@bridgewatersys.com> for reporting
+ this.
+
+Fri Jun 25 15:07:00 1999 John Tucker <jtucker@infoglide.com>
+
+ The following describes the changes to ACE_Future_Set:
+
+ * I followed the Observer Pattern where the ACE_Future_Set is the
+ "Observer" and the ACE_Future_Rep is the "Subject".
+
+ * I created an abstract base class called ACE_Future_Observer<T>
+ which contains a single pure virtual member function "update()".
+
+ * The ACE_Future_Rep is modified so that it contains a list of
+ ACE_Future_Observer<T> pointers and an interface for attaching
+ and detaching ACE_Future_Observer<T> Observer objects. The
+ "attach(...)" member function allows objects which implement the
+ ACE_Future_Observer<T> interface to attach themselves to
+ ACE_Future_Rep<T> objects so that they will be notified of
+ changes to the ACE_Future_Rep<T> Subject. The "detach(...)"
+ member function allows objects which implement the
+ ACE_Future_Observer<T> interface to detach themselves from
+ ACE_Future_Rep<T> objects so that they will no longer be
+ notified of changes to the ACE_Future_Rep<T> Subject.
+
+ * The ACE_Future_Rep::set() method is modified so that it invokes the
+ "update()" method of each ACE_Future_Observer<T> object stored
+ in its list of attached ACE_Future_Observer<T> Observer
+ objects. It also removes each ACE_Future_Observer<T> Observer
+ object from its list.
+
+ * The ACE_Future_Set<T> class derives from the ACE_Future_Observer<T>
+ class.
+
+ * The ACE_Future_Set<T> class contains its own ACE_Message_Queue
+ attribute which will be used by writer threads to notify reader
+ threads that an ACE_Future is readable.
+
+ * The ACE_Future_Set<T> class contains a list of ACE_Future<T>
+ Subject objects which clients in the reader threads insert into
+ it. When an ACE_Future<T> is inserted into an
+ ACE_Future_Set<T>, the ACE_Future_Set<T> attaches itself to the
+ specified ACE_Future<T>, keeping in mind the ACE_Future_Set<T>
+ implements the ACE_Future_Observer<T> interface, and also
+ inserts the specified ACE_Future<T> object into its list of
+ ACE_Future<T> objects.
+
+ * The ACE_Future_Set<T> class implements its "update()" method to
+ just enqueue an ACE_Message_Block with Null data onto its
+ ACE_Message_Queue. Since this "ACE_Future_Set<T>::update()"
+ method will be invoked by the ACE_Future_Rep::set() method in
+ the writer thread, it will allow the ACE_Future_Set<T> in the
+ writer thread to signal itself that an ACE_Future has become
+ readable.
+
+ * The "int ACE_Future_Set<T>::next_readable(ACE_Future<T> &future,
+ ACE_Time_Value *)" method in the reader thread will block via a
+ call to "dequeue()" on its ACE_Message_Queue until is awakened
+ by a call to "ACE_Future_Set<T>::update()" in the writer thread.
+ Once awakened, the ACE_Future_Set<T> object iterates through its
+ list of ACE_Future<T> objects until it encounters a readable
+ one. This readable ACE_Future<T> will be removed from its list
+ and assigned to the specified "future" parameter".
+
+ * The ACE_Future_Set<T> destructor detaches itself from all
+ ACE_Future<T> objects remaining in its list.
+
+ * I did not use the ACE_Reactor since I could foresee the
+ ACE_Future_Set being used by applications which did not run,or
+ want to run, the event loop.
+
+Fri Jun 25 14:28:05 1999 Ossama Othman <othman@cs.wustl.edu>
+
+ * ace/UNIX_Addr.cpp (ACE_UNIX_Addr): Moved base_set() call in
+ constructor to member initializer list. This is cleaner coding
+ style. The original code, before a bug fix was made, was like
+ that. I just forgot to put it back in the member initializer
+ list after the fix.
+
Fri Jun 25 15:15:32 1999 Steve Huston <shuston@riverace.com>
* performance-tests/Misc/Makefile: set static_libs_only so the library
@@ -11,16 +101,6 @@ Fri Jun 25 15:15:32 1999 Steve Huston <shuston@riverace.com>
#pragma implementation line. The compiler remembers the directory
it came from.
-Fri Jun 25 14:28:05 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/UNIX_Addr.cpp (ACE_UNIX_Addr): Moved base_set() call in
- constructor to member initializer list. This is cleaner coding
- style. The original code, before a bug fix was made, was like
- that. I just forgot to put it back in the member initializer
- list after the fix.
-
-Fri Jun 25 13:02:33 1999 Steve Huston <shuston@riverace.com>
-
* examples/ASX/UPIPE_Event_Server/Peer_Router.h:
* examples/Connection/non_blocking/CPP-connector.h:
* examples/Connection/non_blocking/CPP-acceptor.h: