audk/MdeModulePkg/Core/Dxe/Hand
Samer El-Haj-Mahmoud 82f3edf26a MdeModulePkg: Remove event from protocol database only if registered
In a CloseEvent, an UnregisterProtocolNotify is done unconditionally.
There is a penalty associated with searching the protocol database on
every CloseEvent and impacts performance, especially during Network IO.
Unregister needs to be done only if the Event is for a RegisterProtocolNotify.

So extend the ExFlag in IEVENT to a UINT8 and define new flags that can
be set to indicate if the Event is part of a group, or registered on a
protocol notify. Then in CloseEvent, call UnregisterProtocolNotify only
if the register protocol notify flag is set.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18517 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-21 01:53:34 +00:00
..
DriverSupport.c Update code to support VS2013 tool chain. 2014-07-28 07:52:57 +00:00
Handle.c Add the missing status code in the returned table of InstallMultipleProtocolInterface(). 2013-08-20 05:03:30 +00:00
Handle.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
Locate.c Update code to support VS2013 tool chain. 2014-07-28 07:52:57 +00:00
Notify.c MdeModulePkg: Remove event from protocol database only if registered 2015-09-21 01:53:34 +00:00