Re: Spin locks

From
Gennady Mayko ()
To
Serge Rumyantsev
Date
2002-07-01T23:49:14Z
Area
SU.WINDOWS.NT.PROG
From: "Gennady Mayko" <gennady.mayko@broadcom.com>

Добрый день!

Mon Jul 01 2002 16:46, Serge Rumyantsev wrote to Eugene Muzychenko:

 SR> From: "Serge Rumyantsev" <SRumyantsev@flagship.ru>

 SR> void CriticalSection::Enter (void) {
 SR> [skip]
 SR> }

 >> Смысл в том, что пpи свободном Spin Lock'е CurrentProcessor имеет

 SR> значение -1,

 >> что заведомо не совпадает ни с одним из номеpов pеальных пpоцессоpов. В
 >> пpинципе, пpовеpку на DISPATCH_LEVEL отсюда можно и убpать :)

 SR> а если на однопроцессорной машине, то процессор один и тот же а поток
 SR> другой?
 SR> тогда такой подход приведет к ошибочному входу в защищаемый блок...
--
Думаю, что ничего страшного на однопроцессорной машине не произойдет. Как
только мы вошли в захваченный блок (т.е. после вызова функции
KeAcquireSpinLock), IRQL будет поднят до DISPATCH_LEVEL и переключения на
другие потоки просто не будет, пока мы не выйдем из захваченного блока
(наверняка где то бужет вызвана функция KeReleaseSpinLock).


 SR> Serge.

С уважением,
Геннадий Майко.

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)