summaryrefslogtreecommitdiff
path: root/docs/tutorials/007/page09.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorials/007/page09.html')
-rw-r--r--docs/tutorials/007/page09.html85
1 files changed, 0 insertions, 85 deletions
diff --git a/docs/tutorials/007/page09.html b/docs/tutorials/007/page09.html
deleted file mode 100644
index 00e9ff650b5..00000000000
--- a/docs/tutorials/007/page09.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-
-<HR WIDTH="100%">
-
-<P>That's it for Tutorial 7.&nbsp; As with Tutorial 6, we really didn't
-have to change much to introduce a new threading strategy.&nbsp; Most of
-the work was in creating the Thread_Pool object itself.&nbsp; Everything
-else was just minor housekeeping.
-
-<P>There is a fourth common thread strategy:&nbsp; thread-per-request.&nbsp;
-It's not one of my favorites, so I wasn't planning to go into it.&nbsp;
-If you want to contribute a tutorial on that topic though, I'll be glad
-to include it here.
-
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-
-<LI>
-<A HREF="client_acceptor.cpp">client_acceptor.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="thread_pool.h">thread_pool.h</A></LI>
-
-<LI>
-<A HREF="thread_pool.cpp">thread_pool.cpp</A></LI>
-
-<LI>
-<A HREF="fix.Makefile">fix.Makefile</A></LI>
-</UL>
-<P>
-<HR WIDTH="100%">
-<P>
-<center><h2>Danger, Warning!</h2></center>
-Now that I've gone through all of this to create a thread pool server,
-I have to point out that this isn't exactly the best or safest way to
-do so. The biggest danger we face with this approach is the
-possibility of an event handler existing in the thread pool's message
-queue <i>after</i> it has been deleted. When the thread's svc()
-method attempts to invoke <i>handle_input()</i> you will get a nasty
-core dump.
-<p>
-The safest way to handle the situation is to use reference-counted
-pointers everywhere a Client_Handler pointer would be used. That's
-beyond the scope of the tutorial but I encourage you to give it a
-try. If you want to contribute that back as an enhanced Tutorial,
-I'll be glad to include it.
-<p>
-Another approach that should work quite well is to use the
-ACE_TP_Reactor instead of just ACE_Reactor. This takes a little more
-setup but results in a cleaner implementation. Again, I've not had
-time to develop a Tutorial on the TP_Reactor but would welcome any
-contributions.
-<P>
-<HR WIDTH="100%">
-<CENTER>[<A HREF="..">Tutorial
-Index</A>]</CENTER>
-
-</BODY>
-</HTML>