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
|
<!-- Presentation generated by Internet Assistant for Microsoft PowerPoint 97 -->
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft Internet Assistant for Microsoft PowerPoint 97">
<TITLE>Multithreaded Tcl - Thread Local Storage</TITLE>
</HEAD>
<BODY >
<CENTER>
<TABLE WIDTH=100%>
<TR> <TD WIDTH=100% ALIGN=CENTER>
<A HREF="sld001.htm">First</A>
<A HREF="sld024.htm">Previous</A>
<A HREF="sld026.htm">Next</A>
<A HREF="sld077.htm">Last</A>
<A HREF="index.htm">Index</A>
<A HREF="tsld025.htm">Text</A>
</TD> </TR>
<TR> <TD WIDTH=100% ALIGN=CENTER>
<IMG SRC="img025.gif" usemap="#Objmap" WIDTH=600 HEIGHT=450 BORDER=0>
</TD> </TR>
</TABLE>
<P>Slide 25 of 77</P>
</CENTER>
<!-- <UL>
<H2>Multithreaded Tcl - Thread Local Storage</H2>
</UL></P>
<P><UL>
<LI><H2>Next, various global data had to be moved to thread local storage, e.g., from tclIO.c:</H2>
</UL></P>
<P><UL>
void
</UL><UL>
Tcl_SetStdChannel(channel, type)
</UL><UL>
{
</UL><UL>
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
</UL><UL>
switch (type) {
</UL><UL>
case TCL_STDIN:
</UL><UL>
tsdPtr->stdinInitialized = 1;
</UL><UL>
tsdPtr->stdinChannel = channel;
</UL><UL>
break;
</UL><UL>
...</UL></P>
<P> -->
</Body>
</HTML>
|