- Add MayBlock() method to stream classes which is used as a hint when determining the thread to access the stream from (issue #1187).

- In cases where MayBlock() returns true have CefStreamResourceReader perform the reads on the FILE thread (issue #1187).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1582 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2014-01-30 23:15:55 +00:00
parent 89a8832550
commit 2534b67365
23 changed files with 541 additions and 18 deletions

View File

@ -82,6 +82,20 @@ int CEF_CALLBACK read_handler_eof(struct _cef_read_handler_t* self) {
return _retval;
}
int CEF_CALLBACK read_handler_may_block(struct _cef_read_handler_t* self) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
if (!self)
return 0;
// Execute
bool _retval = CefReadHandlerCppToC::Get(self)->MayBlock();
// Return type: bool
return _retval;
}
// CONSTRUCTOR - Do not edit by hand.
@ -91,6 +105,7 @@ CefReadHandlerCppToC::CefReadHandlerCppToC(CefReadHandler* cls)
struct_.struct_.seek = read_handler_seek;
struct_.struct_.tell = read_handler_tell;
struct_.struct_.eof = read_handler_eof;
struct_.struct_.may_block = read_handler_may_block;
}
#ifndef NDEBUG

View File

@ -138,6 +138,20 @@ int CEF_CALLBACK stream_reader_eof(struct _cef_stream_reader_t* self) {
return _retval;
}
int CEF_CALLBACK stream_reader_may_block(struct _cef_stream_reader_t* self) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
if (!self)
return 0;
// Execute
bool _retval = CefStreamReaderCppToC::Get(self)->MayBlock();
// Return type: bool
return _retval;
}
// CONSTRUCTOR - Do not edit by hand.
@ -148,6 +162,7 @@ CefStreamReaderCppToC::CefStreamReaderCppToC(CefStreamReader* cls)
struct_.struct_.seek = stream_reader_seek;
struct_.struct_.tell = stream_reader_tell;
struct_.struct_.eof = stream_reader_eof;
struct_.struct_.may_block = stream_reader_may_block;
}
#ifndef NDEBUG

View File

@ -120,6 +120,20 @@ int CEF_CALLBACK stream_writer_flush(struct _cef_stream_writer_t* self) {
return _retval;
}
int CEF_CALLBACK stream_writer_may_block(struct _cef_stream_writer_t* self) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
if (!self)
return 0;
// Execute
bool _retval = CefStreamWriterCppToC::Get(self)->MayBlock();
// Return type: bool
return _retval;
}
// CONSTRUCTOR - Do not edit by hand.
@ -130,6 +144,7 @@ CefStreamWriterCppToC::CefStreamWriterCppToC(CefStreamWriter* cls)
struct_.struct_.seek = stream_writer_seek;
struct_.struct_.tell = stream_writer_tell;
struct_.struct_.flush = stream_writer_flush;
struct_.struct_.may_block = stream_writer_may_block;
}
#ifndef NDEBUG

View File

@ -82,6 +82,20 @@ int CEF_CALLBACK write_handler_flush(struct _cef_write_handler_t* self) {
return _retval;
}
int CEF_CALLBACK write_handler_may_block(struct _cef_write_handler_t* self) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
DCHECK(self);
if (!self)
return 0;
// Execute
bool _retval = CefWriteHandlerCppToC::Get(self)->MayBlock();
// Return type: bool
return _retval;
}
// CONSTRUCTOR - Do not edit by hand.
@ -92,6 +106,7 @@ CefWriteHandlerCppToC::CefWriteHandlerCppToC(CefWriteHandler* cls)
struct_.struct_.seek = write_handler_seek;
struct_.struct_.tell = write_handler_tell;
struct_.struct_.flush = write_handler_flush;
struct_.struct_.may_block = write_handler_may_block;
}
#ifndef NDEBUG