Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 9098efdf0dd82dea36b517e92ce7c5740e00b1eb
      
https://github.com/tianocore/edk2/commit/9098efdf0dd82dea36b517e92ce7c5740e00b1eb
  Author: Doug Cook (WINDOWS) <[email protected]>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c

  Log Message:
  -----------
  EmulatorPkg: BlockIo2 APIs do not signal event

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 <[email protected]>



To unsubscribe from these emails, change your notification settings at 
https://github.com/tianocore/edk2/settings/notifications


_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to