}
static apr_status_t wait_not_full(h2_bucket_beam *beam, apr_read_type_e block,
- apr_size_t *pspace_left, apr_thread_mutex_t *lock)
+ apr_size_t *pspace_left, h2_beam_lock *bl)
{
apr_status_t rv = APR_SUCCESS;
apr_size_t left;
if (beam->aborted) {
rv = APR_ECONNABORTED;
}
- else if (block != APR_BLOCK_READ) {
+ else if (block != APR_BLOCK_READ || !bl->mutex) {
rv = APR_EAGAIN;
}
- else if (beam->timeout > 0) {
- rv = apr_thread_cond_timedwait(beam->change, lock, beam->timeout);
- }
else {
- rv = apr_thread_cond_wait(beam->change, lock);
+ if (beam->timeout > 0) {
+ rv = apr_thread_cond_timedwait(beam->change, bl->mutex, beam->timeout);
+ }
+ else {
+ rv = apr_thread_cond_wait(beam->change, bl->mutex);
+ }
}
}
*pspace_left = left;
space_left = calc_space_left(beam);
while (!APR_BRIGADE_EMPTY(sender_bb) && APR_SUCCESS == rv) {
if (space_left <= 0) {
- rv = wait_not_full(beam, block, &space_left, bl.mutex);
+ report_prod_io(beam, force_report, &bl);
+ rv = wait_not_full(beam, block, &space_left, &bl);
if (APR_SUCCESS != rv) {
break;
}
* @macro
* Version number of the http2 module as c string
*/
-#define MOD_HTTP2_VERSION "1.10.9-DEV"
+#define MOD_HTTP2_VERSION "1.10.10-DEV"
/**
* @macro
* release. This is a 24 bit number with 8 bits for major number, 8 bits
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
*/
-#define MOD_HTTP2_VERSION_NUM 0x010a09
+#define MOD_HTTP2_VERSION_NUM 0x010a0a
#endif /* mod_h2_h2_version_h */