doc/cxxapi/Bucket_8h-source.html in passenger-2.0.6 vs doc/cxxapi/Bucket_8h-source.html in passenger-2.1.2
- old
+ new
@@ -8,11 +8,10 @@
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>Bucket.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
@@ -36,26 +35,33 @@
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_BUCKET_H_</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_BUCKET_H_</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00023"></a>00023 <span class="comment">/**</span>
-<a name="l00024"></a>00024 <span class="comment"> * apr_bucket_pipe closes a pipe's file descriptor when it has reached end-of-stream,</span>
-<a name="l00025"></a>00025 <span class="comment"> * but not when an error has occurred. That behavior conflicts with Phusion Passenger's</span>
-<a name="l00026"></a>00026 <span class="comment"> * file descriptor management code.</span>
+<a name="l00024"></a>00024 <span class="comment"> * apr_bucket_pipe closes a pipe's file descriptor when it has reached</span>
+<a name="l00025"></a>00025 <span class="comment"> * end-of-stream, but not when an error has occurred. This behavior is</span>
+<a name="l00026"></a>00026 <span class="comment"> * undesirable because it can easily cause file descriptor leaks.</span>
<a name="l00027"></a>00027 <span class="comment"> *</span>
-<a name="l00028"></a>00028 <span class="comment"> * passenger_bucket is like apr_bucket_pipe, but never closes the pipe's file descriptor.</span>
-<a name="l00029"></a>00029 <span class="comment"> * It also ignores the APR_NONBLOCK_READ because that's known to cause strange</span>
-<a name="l00030"></a>00030 <span class="comment"> * I/O problems.</span>
-<a name="l00031"></a>00031 <span class="comment"> */</span>
-<a name="l00032"></a>00032
-<a name="l00033"></a>00033 <span class="preprocessor">#include "apr_buckets.h"</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 apr_bucket *passenger_bucket_create(apr_file_t *pipe, apr_bucket_alloc_t *list);
+<a name="l00028"></a>00028 <span class="comment"> * passenger_bucket is like apr_bucket_pipe, but it also holds a reference to</span>
+<a name="l00029"></a>00029 <span class="comment"> * a Session. When a read error has occured or when end-of-stream has been</span>
+<a name="l00030"></a>00030 <span class="comment"> * reached, the Session will be dereferenced, so that the underlying file</span>
+<a name="l00031"></a>00031 <span class="comment"> * descriptor is closed.</span>
+<a name="l00032"></a>00032 <span class="comment"> *</span>
+<a name="l00033"></a>00033 <span class="comment"> * passenger_bucket also ignores the APR_NONBLOCK_READ flag because that's</span>
+<a name="l00034"></a>00034 <span class="comment"> * known to cause strange I/O problems.</span>
+<a name="l00035"></a>00035 <span class="comment"> */</span>
<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BUCKET_H_ */</span>
-<a name="l00038"></a>00038
+<a name="l00037"></a>00037 <span class="preprocessor">#include <apr_buckets.h></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "Application.h"</span>
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 apr_bucket *passenger_bucket_create(<a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Passenger::Application::SessionPtr</a> session,
+<a name="l00041"></a>00041 apr_file_t *pipe,
+<a name="l00042"></a>00042 apr_bucket_alloc_t *list);
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_BUCKET_H_ */</span>
+<a name="l00045"></a>00045
</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 15 15:27:24 2008 for Passenger by
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:32 2009 for Passenger by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>