InterlockedExchange

From
Gennady Mayko ()
To
Crusader Mike
Date
2002-07-30T14:48:56Z
Area
SU.WINDOWS.NT.PROG
From: "Gennady Mayko" <gennady.mayko@broadcom.com>

Добрый день!

Mon Jul 29 2002 18:00, Crusader Mike wrote to All:

 CM>                               Hi,  All!

 CM>   Только ногами не бейте, т.к. не совсем топик:
 CM> почему ::InterlockedExchange() в Win2000 реализована:
 CM> mov         ecx,dword ptr [esp+4]
 CM> mov         edx,dword ptr [esp+8]
 CM> mov         eax,dword ptr [ecx]
 CM> nop
 CM> cmpxchg     dword ptr [ecx],edx
 CM> jne         77E86ACD
 CM> ret         8

 CM> а не

 CM> mov         ecx,dword ptr [esp+4]
 CM> mov         eax,dword ptr [esp+8]
 CM> xchg        dword ptr [ecx], eax
 CM> ret         8

 CM> ?

 CM> В чем была глубокая идея использования цикла + cmpxchg вместо простого
 CM> xchg?
--
Точно такой же вопрос обсуждался пару лет назад в группе
http://groups.google.com/groups?hl=en&group=comp.os.ms-windows.programmer.nt.ke
rnel-mode. Поищи в Google group search слова "InterlockedExchange Seong Won",
чтобы выйти на исходный post.

Но не надейся найти там точный ответ :)

 CM>                                              Sincerely yours, Prihodko
 CM> Michael.

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

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