input/InputStreams: pass std::unique_lock<> to various methods
This commit is contained in:
@@ -28,7 +28,8 @@ public:
|
||||
return remaining == 0;
|
||||
}
|
||||
|
||||
size_t Read(void *ptr, size_t read_size) override {
|
||||
size_t Read(std::unique_lock<Mutex> &,
|
||||
void *ptr, size_t read_size) override {
|
||||
size_t nbytes = std::min(remaining, read_size);
|
||||
memcpy(ptr, data, nbytes);
|
||||
data += nbytes;
|
||||
@@ -51,7 +52,7 @@ TEST(RewindInputStream, Basic)
|
||||
EXPECT_TRUE(ris.get() != sis);
|
||||
EXPECT_TRUE(ris != nullptr);
|
||||
|
||||
const std::lock_guard<Mutex> protect(mutex);
|
||||
std::unique_lock<Mutex> lock(mutex);
|
||||
|
||||
ris->Update();
|
||||
EXPECT_TRUE(ris->IsReady());
|
||||
@@ -59,50 +60,50 @@ TEST(RewindInputStream, Basic)
|
||||
EXPECT_EQ(offset_type(0), ris->GetOffset());
|
||||
|
||||
char buffer[16];
|
||||
size_t nbytes = ris->Read(buffer, 2);
|
||||
size_t nbytes = ris->Read(lock, buffer, 2);
|
||||
EXPECT_EQ(size_t(2), nbytes);
|
||||
EXPECT_EQ('f', buffer[0]);
|
||||
EXPECT_EQ('o', buffer[1]);
|
||||
EXPECT_EQ(offset_type(2), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, 2);
|
||||
nbytes = ris->Read(lock, buffer, 2);
|
||||
EXPECT_EQ(size_t(2), nbytes);
|
||||
EXPECT_EQ('o', buffer[0]);
|
||||
EXPECT_EQ(' ', buffer[1]);
|
||||
EXPECT_EQ(offset_type(4), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
ris->Seek(1);
|
||||
ris->Seek(lock, 1);
|
||||
EXPECT_EQ(offset_type(1), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, 2);
|
||||
nbytes = ris->Read(lock, buffer, 2);
|
||||
EXPECT_EQ(size_t(2), nbytes);
|
||||
EXPECT_EQ('o', buffer[0]);
|
||||
EXPECT_EQ('o', buffer[1]);
|
||||
EXPECT_EQ(offset_type(3), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
ris->Seek(0);
|
||||
ris->Seek(lock, 0);
|
||||
EXPECT_EQ(offset_type(0), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, 2);
|
||||
nbytes = ris->Read(lock, buffer, 2);
|
||||
EXPECT_EQ(size_t(2), nbytes);
|
||||
EXPECT_EQ('f', buffer[0]);
|
||||
EXPECT_EQ('o', buffer[1]);
|
||||
EXPECT_EQ(offset_type(2), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, sizeof(buffer));
|
||||
nbytes = ris->Read(lock, buffer, sizeof(buffer));
|
||||
EXPECT_EQ(size_t(2), nbytes);
|
||||
EXPECT_EQ('o', buffer[0]);
|
||||
EXPECT_EQ(' ', buffer[1]);
|
||||
EXPECT_EQ(offset_type(4), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, sizeof(buffer));
|
||||
nbytes = ris->Read(lock, buffer, sizeof(buffer));
|
||||
EXPECT_EQ(size_t(3), nbytes);
|
||||
EXPECT_EQ('b', buffer[0]);
|
||||
EXPECT_EQ('a', buffer[1]);
|
||||
@@ -110,11 +111,11 @@ TEST(RewindInputStream, Basic)
|
||||
EXPECT_EQ(offset_type(7), ris->GetOffset());
|
||||
EXPECT_TRUE(ris->IsEOF());
|
||||
|
||||
ris->Seek(3);
|
||||
ris->Seek(lock, 3);
|
||||
EXPECT_EQ(offset_type(3), ris->GetOffset());
|
||||
EXPECT_FALSE(ris->IsEOF());
|
||||
|
||||
nbytes = ris->Read(buffer, sizeof(buffer));
|
||||
nbytes = ris->Read(lock, buffer, sizeof(buffer));
|
||||
EXPECT_EQ(size_t(4), nbytes);
|
||||
EXPECT_EQ(' ', buffer[0]);
|
||||
EXPECT_EQ('b', buffer[1]);
|
||||
|
@@ -131,7 +131,7 @@ tag_save(FILE *file, const Tag &tag)
|
||||
static int
|
||||
dump_input_stream(InputStream *is)
|
||||
{
|
||||
const std::lock_guard<Mutex> protect(is->mutex);
|
||||
std::unique_lock<Mutex> lock(is->mutex);
|
||||
|
||||
/* print meta data */
|
||||
|
||||
@@ -150,7 +150,7 @@ dump_input_stream(InputStream *is)
|
||||
}
|
||||
|
||||
char buffer[4096];
|
||||
size_t num_read = is->Read(buffer, sizeof(buffer));
|
||||
size_t num_read = is->Read(lock, buffer, sizeof(buffer));
|
||||
if (num_read == 0)
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user