File: node63.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (132 lines) | stat: -rw-r--r-- 5,027 bytes parent folder | download | duplicates (2)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>The Life of an Array</TITLE>
<META NAME="description" CONTENT="The Life of an Array">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="next" HREF="node64.html">
<LINK REL="previous" HREF="node62.html">
<LINK REL="up" HREF="node59.html">
<LINK REL="next" HREF="node64.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html1594"
  HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1588"
  HREF="node59.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1582"
  HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1590"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1592"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1595"
  HREF="node64.html">The Language Bindings</A>
<B> Up:</B> <A NAME="tex2html1589"
  HREF="node59.html">Arrays</A>
<B> Previous:</B> <A NAME="tex2html1583"
  HREF="node62.html">Independent and borrowed arrays</A>
 &nbsp; <B>  <A NAME="tex2html1591"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1593"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H2><A NAME="SECTION02444000000000000000"></A>
<A NAME="2651"></A>
<BR>
The Life of an Array
</H2>

<P>
The existence of borrowed arrays causes the arrays to deviate from the
normal reference counting pattern. You may recall that all arrays are reference counted,
and an array's resources are reclaimed when the reference count goes to
zero. However, a borrowed array's array element data will disappear
whenever the source of the borrowed data determines that it should
regardless of the reference count in corresponding the SIDL array.
This behavior means that developers should consider any SIDL array
that they did not create themselves, for example incoming arguments to
methods, as potential borrowed arrays.  When a method wants to keep a
copy of an array that might be a borrowed array, it should use the
<TT>smartCopy</TT><A NAME="2653"></A><A NAME="2654"></A> method documented below.

<P>
Here are some rules of thumb about the use of borrowed arrays:

<UL>
<LI>The creator of a borrowed array should guarantee that the data for the
borrowed array will exist through the duration of any method calls
using the borrowed array.
</LI>
<LI>Methods should not return a borrowed array as a return value or
<TT>out</TT> parameter unless the method can guarantee that the array
element data will be available until the process shuts down.
</LI>
<LI>There is a negligible performance cost when using <TT>smartCopy</TT>
when the array is not borrowed, and there is a huge correctness
benefit when the array is borrowed.
</LI>
</UL>

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html1594"
  HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1588"
  HREF="node59.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1582"
  HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1590"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1592"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1595"
  HREF="node64.html">The Language Bindings</A>
<B> Up:</B> <A NAME="tex2html1589"
  HREF="node59.html">Arrays</A>
<B> Previous:</B> <A NAME="tex2html1583"
  HREF="node62.html">Independent and borrowed arrays</A>
 &nbsp; <B>  <A NAME="tex2html1591"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1593"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>