input/InputStreams: pass std::unique_lock<> to various methods
This commit is contained in:
@@ -60,8 +60,9 @@ public:
|
||||
return !ReadingFromBuffer() && ProxyInputStream::IsEOF();
|
||||
}
|
||||
|
||||
size_t Read(void *ptr, size_t size) override;
|
||||
void Seek(offset_type offset) override;
|
||||
size_t Read(std::unique_lock<Mutex> &lock,
|
||||
void *ptr, size_t size) override;
|
||||
void Seek(std::unique_lock<Mutex> &lock, offset_type offset) override;
|
||||
|
||||
private:
|
||||
/**
|
||||
@@ -74,7 +75,8 @@ private:
|
||||
};
|
||||
|
||||
size_t
|
||||
RewindInputStream::Read(void *ptr, size_t read_size)
|
||||
RewindInputStream::Read(std::unique_lock<Mutex> &lock,
|
||||
void *ptr, size_t read_size)
|
||||
{
|
||||
if (ReadingFromBuffer()) {
|
||||
/* buffered read */
|
||||
@@ -93,7 +95,7 @@ RewindInputStream::Read(void *ptr, size_t read_size)
|
||||
} else {
|
||||
/* pass method call to underlying stream */
|
||||
|
||||
size_t nbytes = input->Read(ptr, read_size);
|
||||
size_t nbytes = input->Read(lock, ptr, read_size);
|
||||
|
||||
if (input->GetOffset() > (offset_type)sizeof(buffer))
|
||||
/* disable buffering */
|
||||
@@ -114,7 +116,7 @@ RewindInputStream::Read(void *ptr, size_t read_size)
|
||||
}
|
||||
|
||||
void
|
||||
RewindInputStream::Seek(offset_type new_offset)
|
||||
RewindInputStream::Seek(std::unique_lock<Mutex> &lock, offset_type new_offset)
|
||||
{
|
||||
assert(IsReady());
|
||||
|
||||
@@ -132,7 +134,7 @@ RewindInputStream::Seek(offset_type new_offset)
|
||||
buffered range now */
|
||||
tail = 0;
|
||||
|
||||
ProxyInputStream::Seek(new_offset);
|
||||
ProxyInputStream::Seek(lock, new_offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user