add push lock initialization code
This commit is contained in:
@@ -22,6 +22,7 @@ namespace KE
|
||||
STATIC XTFASTCALL VOID AcquireSharedPushLock(PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID AcquireWaitExclusivePushLock(IN PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID AcquireWaitSharedPushLock(IN OUT PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID InitializePushLock(IN PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID ReleaseExclusivePushLock(IN PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID ReleasePushLock(IN PKPUSH_LOCK PushLock);
|
||||
STATIC XTFASTCALL VOID ReleaseSharedPushLock(IN PKPUSH_LOCK PushLock);
|
||||
@@ -35,7 +36,7 @@ namespace KE
|
||||
|
||||
private:
|
||||
STATIC XTINLINE VOID OptimizePushLockList(IN PKPUSH_LOCK PushLock, IN KPUSH_LOCK OldValue);
|
||||
STATIC XTINLINE XTFASTCALL VOID SpinPushLock(IN PKPUSH_LOCK_WAIT_BLOCK WaitBlock);
|
||||
STATIC XTINLINE VOID SpinPushLock(IN PKPUSH_LOCK_WAIT_BLOCK WaitBlock);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -299,6 +299,25 @@ KE::PushLock::AcquireWaitSharedPushLock(IN PKPUSH_LOCK PushLock)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a push lock.
|
||||
*
|
||||
* @param PushLock
|
||||
* Supplies a pointer to the push lock to be initialized.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*
|
||||
*/
|
||||
XTFASTCALL
|
||||
VOID
|
||||
KE::PushLock::InitializePushLock(IN PKPUSH_LOCK PushLock)
|
||||
{
|
||||
/* Initialize the push lock state */
|
||||
PushLock->Value = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Optimizes the push lock wait list by converting it from a singly-linked LIFO list into a doubly-linked FIFO list.
|
||||
*
|
||||
@@ -715,7 +734,6 @@ KE::PushLock::ReleaseWaitSharedPushLock(IN PKPUSH_LOCK PushLock)
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTINLINE
|
||||
XTFASTCALL
|
||||
VOID
|
||||
KE::PushLock::SpinPushLock(IN PKPUSH_LOCK_WAIT_BLOCK WaitBlock)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user