summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1998-04-14 04:10:30 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1998-04-14 04:10:30 +0000
commit4b832ac445d1f75878f6474b0798b1899d0d2558 (patch)
treebd488cc61cc614635ed2e55f3b0d94fb39e8683b
parent0021d0c47d1d8952301cad7c456fd6044c205e3e (diff)
downloadATCD-4b832ac445d1f75878f6474b0798b1899d0d2558.tar.gz
*** empty log message ***
-rw-r--r--ChangeLog-98a3
-rw-r--r--ace/OS.h9
-rw-r--r--ace/OS.i5
3 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog-98a b/ChangeLog-98a
index 54c1f5c0933..b233749e247 100644
--- a/ChangeLog-98a
+++ b/ChangeLog-98a
@@ -1,5 +1,8 @@
Mon Apr 13 19:19:13 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+ * ace/OS: Made the destructor of ACE_Thread_Adapter private to
+ keep people like Russ from abusing this class... ;-)
+
* ace/OS.cpp (invoke): We were incorrectly deleting this and then
using one of its fields! Thanks to the ever-vigilant Russ
Noseworthy <rnosewor@objectsciences.com> for reporting this.
diff --git a/ace/OS.h b/ace/OS.h
index 49ac64322a4..36a09585f1e 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -3876,12 +3876,14 @@ public:
ACE_Thread_Adapter (ACE_THR_FUNC user_func,
void *arg,
ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter,
- ACE_Thread_Manager *tmgr = 0,
+ ACE_Thread_Manager *thr_mgr = 0,
ACE_Thread_Descriptor *td = 0);
// Constructor.
void *invoke (void);
- // Execute the <user_func_> with the <arg>.
+ // Execute the <user_func_> with the <arg>. This function deletes
+ // <this>, thereby rendering the object useless after the call
+ // returns.
ACE_Thread_Manager *thr_mgr (void);
// Accessor for the optional <Thread_Manager>.
@@ -3891,6 +3893,9 @@ public:
// routine.
private:
+ ~ACE_Thread_Adapter (void);
+ // Ensure that this object must be allocated on the heap.
+
void inherit_log_msg (void);
// Inherit the logging features if the parent thread has an
// <ACE_Log_Msg>.
diff --git a/ace/OS.i b/ace/OS.i
index a1426b537f1..7eb584b4cd1 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -9112,6 +9112,11 @@ ACE_Thread_Adapter::thr_mgr (void)
return this->thr_mgr_;
}
+ACE_INLINE
+ACE_Thread_Adapter::~ACE_Thread_Adapter (void)
+{
+}
+
ACE_INLINE ACE_THR_C_FUNC
ACE_Thread_Adapter::entry_point (void)
{