Повтоpное занятие spin lock

From
Eugene Muzychenko (2:5000/14)
To
Yury Haron ()
Date
2003-04-15T18:21:54Z
Area
SU.WINDOWS.NT.PROG
Привет!

14 Apr 03 17:58, you wrote to me:

 EM>>   SpinLock *SL = (SpinLock *) (SectionData);

 EM>>   if (
 EM>>     KeGetCurrentIrql () < DISPATCH_LEVEL
 EM>>     || KeGetCurrentProcessorNumber () != Owner
 EM>>   ) {

 EM>>     KeAcquireSpinLock (&SL->Lock, &SL->OldIrql);

 EM>>     Assert (Depth == 0);

 EM>>     Owner = KeGetCurrentProcessorNumber ();

 EM>>   }

 YH> 1. if бyдет "пpеpван" после JeGetCurrentProcessrNouber, но до команды
 YH> сpавнения.

Кем он там будет прерван? Только ISR с IRQL > DISPATCH_LEVEL, а я таких не держу.

 YH> 2. Аналогично, но после KeAcquireSpinlock и до Owner =

А здесь-то кем? Если ты о системных прерываниях - так они мне до фени.

 YH> Могy и ещё пpидyмать, но идею ты, дyмаю, yловил.

Нет, не уловил. Придумывай дальше.

Всего доброго!
Евгений Музыченко

--- GoldED+/W32 1.1.4.7
 * Origin: Fox Tracks, Novosibirsk, Russia (2:5000/14)