mirror of https://github.com/acidanthera/audk.git
BlockIo2 Read/Write/Flush APIs should signal the token's event when the I/O operation completes, but the Emulator APIs do not. As a result, any code that tries to implement async I/O will hang on emulator. Both Windows and Unix emulator hosts work the same way: - All I/O is completed synchronously. - All I/O implementations contain the comment: `// Caller is responsible for signaling EFI Event` However, the protocol implementations do not signal the event, so the event is never signalled. Fix is to signal the event in the appropriate protocol implementations. - If the host API returns success then the I/O is complete since it's always synchronous. - If there is a Token and Token->Event is not null and the I/O is successful then the event should be signalled. Signed-off-by: Doug Cook <idigdoug@gmail.com> |
||
---|---|---|
.. | ||
ComponentName.c | ||
DriverConfiguration.c | ||
DriverDiagnostics.c | ||
EmuBlockIo.c | ||
EmuBlockIo.h | ||
EmuBlockIoDxe.inf |