1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>tbb::concurrent_bounded_queue< T, A > Class Template Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.4.7 -->
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
<li><a href="modules.html"><span>Modules</span></a></li>
12
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
14
<li><a href="files.html"><span>Files</span></a></li>
15
<li><a href="pages.html"><span>Related Pages</span></a></li>
19
<li><a href="annotated.html"><span>Class List</span></a></li>
20
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
21
<li><a href="functions.html"><span>Class Members</span></a></li>
24
<a class="el" href="a00272.html">tbb</a>::<a class="el" href="a00159.html">concurrent_bounded_queue</a></div>
25
<h1>tbb::concurrent_bounded_queue< T, A > Class Template Reference<br>
27
[<a class="el" href="a00281.html">Containers</a>]</small>
28
</h1><!-- doxytag: class="tbb::concurrent_bounded_queue" -->A high-performance thread-safe blocking concurrent bounded queue.
29
<a href="#_details">More...</a>
31
<code>#include <<a class="el" href="a00341.html">concurrent_queue.h</a>></code>
33
<p>Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
34
<p><center><img src="a00159.png" usemap="#tbb::concurrent_bounded_queue< T, A >_map" border="0" alt=""></center>
35
<map name="tbb::concurrent_bounded_queue< T, A >_map">
36
<area href="a00165.html" alt="tbb::deprecated::concurrent_queue< T, A >" shape="rect" coords="0,56,257,80">
38
<a href="a00019.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
40
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="98245517a931e5893f6601e66c51fc75"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::value_type" ref="98245517a931e5893f6601e66c51fc75" args="" -->
42
typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#98245517a931e5893f6601e66c51fc75">value_type</a></td></tr>
44
<tr><td class="mdescLeft"> </td><td class="mdescRight">Element type in the queue. <br></td></tr>
45
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e2726fccf6d975dc1071608cc0bbf90"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::allocator_type" ref="2e2726fccf6d975dc1071608cc0bbf90" args="" -->
46
typedef A </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a></td></tr>
48
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocator type. <br></td></tr>
49
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dcd44ca6a88c0dc7a847a47a10811f0c"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::reference" ref="dcd44ca6a88c0dc7a847a47a10811f0c" args="" -->
50
typedef T & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#dcd44ca6a88c0dc7a847a47a10811f0c">reference</a></td></tr>
52
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reference type. <br></td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="796713d0b9ba93a4721cbe13e4474068"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::const_reference" ref="796713d0b9ba93a4721cbe13e4474068" args="" -->
54
typedef const T & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#796713d0b9ba93a4721cbe13e4474068">const_reference</a></td></tr>
56
<tr><td class="mdescLeft"> </td><td class="mdescRight">Const reference type. <br></td></tr>
57
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a></td></tr>
59
<tr><td class="mdescLeft"> </td><td class="mdescRight">Integral type for representing size of the queue. <a href="#a80e4c11dbb324e4b92a24a77bbcde68"></a><br></td></tr>
60
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4b45c91297e69515d83d5eef85ae1f49"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::difference_type" ref="4b45c91297e69515d83d5eef85ae1f49" args="" -->
61
typedef std::ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#4b45c91297e69515d83d5eef85ae1f49">difference_type</a></td></tr>
63
<tr><td class="mdescLeft"> </td><td class="mdescRight">Difference type for iterator. <br></td></tr>
64
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aeea2ad38b7e7fc2866f063dfed24c52"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::iterator" ref="aeea2ad38b7e7fc2866f063dfed24c52" args="" -->
65
typedef internal::concurrent_queue_iterator<<br>
66
<a class="el" href="a00159.html">concurrent_bounded_queue</a>,<br>
67
T > </td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
69
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0edd1a90e6ffa503bac1c4027116dbff"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::const_iterator" ref="0edd1a90e6ffa503bac1c4027116dbff" args="" -->
70
typedef internal::concurrent_queue_iterator<<br>
71
<a class="el" href="a00159.html">concurrent_bounded_queue</a>,<br>
72
const T > </td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
74
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
75
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e3525226732963ff0f13e89d8e6dab5b"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::concurrent_bounded_queue" ref="e3525226732963ff0f13e89d8e6dab5b" args="(const allocator_type &a=allocator_type())" -->
76
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#e3525226732963ff0f13e89d8e6dab5b">concurrent_bounded_queue</a> (const <a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a> &a=<a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a>())</td></tr>
78
<tr><td class="mdescLeft"> </td><td class="mdescRight">Construct empty queue. <br></td></tr>
79
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b7fb414d2eaa8a7f5d68fc4cd63ac50"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::concurrent_bounded_queue" ref="7b7fb414d2eaa8a7f5d68fc4cd63ac50" args="(const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())" -->
80
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#7b7fb414d2eaa8a7f5d68fc4cd63ac50">concurrent_bounded_queue</a> (const <a class="el" href="a00159.html">concurrent_bounded_queue</a> &src, const <a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a> &a=<a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a>())</td></tr>
82
<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br></td></tr>
83
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="a5e04dcd7db9fd9b583b4e7df832246a"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::concurrent_bounded_queue" ref="a5e04dcd7db9fd9b583b4e7df832246a" args="(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())" -->
84
template<typename InputIterator> </td></tr>
85
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#a5e04dcd7db9fd9b583b4e7df832246a">concurrent_bounded_queue</a> (InputIterator begin, InputIterator end, const <a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a> &a=<a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a>())</td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">[begin,end) constructor <br></td></tr>
88
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="acaf5b510dc0dfc7780b8c956cf773cf"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::~concurrent_bounded_queue" ref="acaf5b510dc0dfc7780b8c956cf773cf" args="()" -->
89
</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#acaf5b510dc0dfc7780b8c956cf773cf">~concurrent_bounded_queue</a> ()</td></tr>
91
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy queue. <br></td></tr>
92
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ceb08c743b11ba88c878e73fff8af20b"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::push" ref="ceb08c743b11ba88c878e73fff8af20b" args="(const T &source)" -->
93
void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ceb08c743b11ba88c878e73fff8af20b">push</a> (const T &source)</td></tr>
95
<tr><td class="mdescLeft"> </td><td class="mdescRight">Enqueue an item at tail of queue. <br></td></tr>
96
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#41f4c6bd7a82ab070e840bbf81b0b123">pop</a> (T &destination)</td></tr>
98
<tr><td class="mdescLeft"> </td><td class="mdescRight">Dequeue item from head of queue. <a href="#41f4c6bd7a82ab070e840bbf81b0b123"></a><br></td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#2bd6232531279fb3ccbd296bea23066b">try_push</a> (const T &source)</td></tr>
101
<tr><td class="mdescLeft"> </td><td class="mdescRight">Enqueue an item at tail of queue if queue is not already full. <a href="#2bd6232531279fb3ccbd296bea23066b"></a><br></td></tr>
102
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#0ca487019bbb00a196442aff78a1e4f7">try_pop</a> (T &destination)</td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">Attempt to dequeue an item from head of queue. <a href="#0ca487019bbb00a196442aff78a1e4f7"></a><br></td></tr>
105
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#7dc14d1a579a4cccda9f857585e1768d">size</a> () const </td></tr>
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return number of pushes minus number of pops. <a href="#7dc14d1a579a4cccda9f857585e1768d"></a><br></td></tr>
108
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f64924f2ee9225c368a270fc3c394db9"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::empty" ref="f64924f2ee9225c368a270fc3c394db9" args="() const " -->
109
bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#f64924f2ee9225c368a270fc3c394db9">empty</a> () const </td></tr>
111
<tr><td class="mdescLeft"> </td><td class="mdescRight">Equivalent to <a class="el" href="a00159.html#7dc14d1a579a4cccda9f857585e1768d">size()</a><=0. <br></td></tr>
112
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2888b3e4e837d7e03f2c731963a402b"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::capacity" ref="b2888b3e4e837d7e03f2c731963a402b" args="() const " -->
113
<a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#b2888b3e4e837d7e03f2c731963a402b">capacity</a> () const </td></tr>
115
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of allowed elements. <br></td></tr>
116
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#f3c6c934f85fd02aedbc83a16943193b">set_capacity</a> (<a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> new_capacity)</td></tr>
118
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the capacity. <a href="#f3c6c934f85fd02aedbc83a16943193b"></a><br></td></tr>
119
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="415eb87e53b1c6a266de06ecbc490d16"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::get_allocator" ref="415eb87e53b1c6a266de06ecbc490d16" args="() const " -->
120
<a class="el" href="a00159.html#2e2726fccf6d975dc1071608cc0bbf90">allocator_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#415eb87e53b1c6a266de06ecbc490d16">get_allocator</a> () const </td></tr>
122
<tr><td class="mdescLeft"> </td><td class="mdescRight">return allocator object <br></td></tr>
123
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="90b31e2954c6e4596c7900435a5f4bc1"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::clear" ref="90b31e2954c6e4596c7900435a5f4bc1" args="()" -->
124
void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#90b31e2954c6e4596c7900435a5f4bc1">clear</a> ()</td></tr>
126
<tr><td class="mdescLeft"> </td><td class="mdescRight">clear the queue. not thread-safe. <br></td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a2637188e104503ac2c0dff633014e8"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::unsafe_begin" ref="5a2637188e104503ac2c0dff633014e8" args="()" -->
128
iterator </td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> ()</td></tr>
130
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7267334ef11087c76c810abb9d5cbc2"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::unsafe_end" ref="c7267334ef11087c76c810abb9d5cbc2" args="()" -->
131
iterator </td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> ()</td></tr>
133
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8be757841d0bbf7744508aaf6a141d08"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::unsafe_begin" ref="8be757841d0bbf7744508aaf6a141d08" args="() const " -->
134
const_iterator </td><td class="memItemRight" valign="bottom"><b>unsafe_begin</b> () const </td></tr>
136
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3aac91d288bf227d9d06717b44ef28f7"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::unsafe_end" ref="3aac91d288bf227d9d06717b44ef28f7" args="() const " -->
137
const_iterator </td><td class="memItemRight" valign="bottom"><b>unsafe_end</b> () const </td></tr>
139
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
140
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="05bffad9626d51abbd4bb82ae2a1cceb"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::internal::concurrent_queue_iterator" ref="05bffad9626d51abbd4bb82ae2a1cceb" args="" -->
141
class </td><td class="memItemRight" valign="bottom"><b>internal::concurrent_queue_iterator</b></td></tr>
143
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
144
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><b>destroyer</b></td></tr>
146
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class used to ensure exception-safety of method "pop". <br></td></tr>
148
<hr><a name="_details"></a><h2>Detailed Description</h2>
149
<h3>template<typename T, class A = cache_aligned_allocator<T>><br>
150
class tbb::concurrent_bounded_queue< T, A ></h3>
152
A high-performance thread-safe blocking concurrent bounded queue.
154
This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.
156
<hr><h2>Member Typedef Documentation</h2>
157
<a class="anchor" name="a80e4c11dbb324e4b92a24a77bbcde68"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::size_type" ref="a80e4c11dbb324e4b92a24a77bbcde68" args="" -->
158
<div class="memitem">
159
<div class="memproto">
160
<div class="memtemplate">
161
template<typename T, class A = cache_aligned_allocator<T>> </div>
162
<table class="memname">
164
<td class="memname">typedef std::ptrdiff_t <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::<a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> </td>
171
Integral type for representing size of the queue.
173
Notice that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.
176
<hr><h2>Member Function Documentation</h2>
177
<a class="anchor" name="41f4c6bd7a82ab070e840bbf81b0b123"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::pop" ref="41f4c6bd7a82ab070e840bbf81b0b123" args="(T &destination)" -->
178
<div class="memitem">
179
<div class="memproto">
180
<div class="memtemplate">
181
template<typename T, class A = cache_aligned_allocator<T>> </div>
182
<table class="memname">
184
<td class="memname">void <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::pop </td>
186
<td class="paramtype">T & </td>
187
<td class="paramname"> <em>destination</em> </td>
188
<td> ) </td>
189
<td width="100%"><code> [inline]</code></td>
196
Dequeue item from head of queue.
198
Block until an item becomes available, and then dequeue it.
201
<a class="anchor" name="f3c6c934f85fd02aedbc83a16943193b"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::set_capacity" ref="f3c6c934f85fd02aedbc83a16943193b" args="(size_type new_capacity)" -->
202
<div class="memitem">
203
<div class="memproto">
204
<div class="memtemplate">
205
template<typename T, class A = cache_aligned_allocator<T>> </div>
206
<table class="memname">
208
<td class="memname">void <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::set_capacity </td>
210
<td class="paramtype"><a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> </td>
211
<td class="paramname"> <em>new_capacity</em> </td>
212
<td> ) </td>
213
<td width="100%"><code> [inline]</code></td>
222
Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.
225
<a class="anchor" name="7dc14d1a579a4cccda9f857585e1768d"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::size" ref="7dc14d1a579a4cccda9f857585e1768d" args="() const " -->
226
<div class="memitem">
227
<div class="memproto">
228
<div class="memtemplate">
229
template<typename T, class A = cache_aligned_allocator<T>> </div>
230
<table class="memname">
232
<td class="memname"><a class="el" href="a00159.html#a80e4c11dbb324e4b92a24a77bbcde68">size_type</a> <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::size </td>
234
<td class="paramname"> </td>
235
<td> ) </td>
236
<td width="100%"> const<code> [inline]</code></td>
243
Return number of pushes minus number of pops.
245
Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed <a class="el" href="a00159.html#b2888b3e4e837d7e03f2c731963a402b">capacity()</a> if there are push operations in flight.
248
<a class="anchor" name="0ca487019bbb00a196442aff78a1e4f7"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::try_pop" ref="0ca487019bbb00a196442aff78a1e4f7" args="(T &destination)" -->
249
<div class="memitem">
250
<div class="memproto">
251
<div class="memtemplate">
252
template<typename T, class A = cache_aligned_allocator<T>> </div>
253
<table class="memname">
255
<td class="memname">bool <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::try_pop </td>
257
<td class="paramtype">T & </td>
258
<td class="paramname"> <em>destination</em> </td>
259
<td> ) </td>
260
<td width="100%"><code> [inline]</code></td>
267
Attempt to dequeue an item from head of queue.
269
Does not wait for item to become available. Returns true if successful; false otherwise.
272
<a class="anchor" name="2bd6232531279fb3ccbd296bea23066b"></a><!-- doxytag: member="tbb::concurrent_bounded_queue::try_push" ref="2bd6232531279fb3ccbd296bea23066b" args="(const T &source)" -->
273
<div class="memitem">
274
<div class="memproto">
275
<div class="memtemplate">
276
template<typename T, class A = cache_aligned_allocator<T>> </div>
277
<table class="memname">
279
<td class="memname">bool <a class="el" href="a00159.html">tbb::concurrent_bounded_queue</a>< T, A >::try_push </td>
281
<td class="paramtype">const T & </td>
282
<td class="paramname"> <em>source</em> </td>
283
<td> ) </td>
284
<td width="100%"><code> [inline]</code></td>
291
Enqueue an item at tail of queue if queue is not already full.
293
Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.
296
<hr>The documentation for this class was generated from the following file:<ul>
297
<li><a class="el" href="a00341.html">concurrent_queue.h</a></ul>
300
Copyright © 2005-2010 Intel Corporation. All Rights Reserved.
302
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
303
registered trademarks or trademarks of Intel Corporation or its
304
subsidiaries in the United States and other countries.
306
* Other names and brands may be claimed as the property of others.