Merge pull request #3440 from B3n30/file_read_delay

File_Sys: Add a size dependent delay for each file read
This commit is contained in:
James Rowe 2018-03-04 21:32:50 -07:00 committed by GitHub
commit f3234db5e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 184 additions and 17 deletions

View file

@ -31,6 +31,7 @@
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/client_port.h"
#include "core/hle/kernel/client_session.h"
#include "core/hle/kernel/event.h"
#include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/server_session.h"
#include "core/hle/result.h"
@ -104,6 +105,13 @@ void File::Read(Kernel::HLERequestContext& ctx) {
rb.Push<u32>(*read);
}
rb.PushMappedBuffer(buffer);
std::chrono::nanoseconds read_timeout_ns{backend->GetReadDelayNs(length)};
ctx.SleepClientThread(Kernel::GetCurrentThread(), "file::read", read_timeout_ns,
[](Kernel::SharedPtr<Kernel::Thread> thread,
Kernel::HLERequestContext& ctx, ThreadWakeupReason reason) {
// Nothing to do here
});
}
void File::Write(Kernel::HLERequestContext& ctx) {