Click here to Skip to main content
15,902,938 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: struct pointers Pin
ginjikun28-Apr-07 3:28
ginjikun28-Apr-07 3:28 
QuestionHow to Append Two Byte Buffers?? Pin
narayanagvs27-Apr-07 19:49
narayanagvs27-Apr-07 19:49 
AnswerRe: How to Append Two Byte Buffers?? Pin
Arman S.27-Apr-07 21:11
Arman S.27-Apr-07 21:11 
AnswerRe: How to Append Two Byte Buffers?? Pin
John R. Shaw28-Apr-07 15:20
John R. Shaw28-Apr-07 15:20 
QuestionWM_DESTROY Pin
SumitMandal27-Apr-07 19:14
SumitMandal27-Apr-07 19:14 
QuestionRe: WM_DESTROY Pin
Rajesh R Subramanian27-Apr-07 19:28
professionalRajesh R Subramanian27-Apr-07 19:28 
AnswerRe: WM_DESTROY Pin
Stephen Hewitt27-Apr-07 20:49
Stephen Hewitt27-Apr-07 20:49 
AnswerRe: WM_DESTROY Pin
Michael Dunn28-Apr-07 18:50
sitebuilderMichael Dunn28-Apr-07 18:50 
QuestionFile Pin
Tran Ngoc Minh27-Apr-07 17:31
Tran Ngoc Minh27-Apr-07 17:31 
AnswerRe: File Pin
Hamid_RT27-Apr-07 18:45
Hamid_RT27-Apr-07 18:45 
AnswerRe: File Pin
vivekphlp27-Apr-07 18:52
vivekphlp27-Apr-07 18:52 
QuestionQuestion about Interlocked functions Pin
HOW WHAT27-Apr-07 17:29
HOW WHAT27-Apr-07 17:29 
AnswerRe: Question about Interlocked functions Pin
Arman S.27-Apr-07 22:49
Arman S.27-Apr-07 22:49 
AnswerRe: Question about Interlocked functions Pin
cmk28-Apr-07 13:23
cmk28-Apr-07 13:23 
GeneralRe: Question about Interlocked functions Pin
HOW WHAT28-Apr-07 14:47
HOW WHAT28-Apr-07 14:47 
GeneralRe: Question about Interlocked functions Pin
cmk28-Apr-07 15:20
cmk28-Apr-07 15:20 
HOW WHAT wrote:
void Release ( void ) { lock = 0; }
why not use:
InterlockedExchange(&lock, 0);


http://msdn2.microsoft.com/en-us/library/ms684122.aspx[^]
Simple reads and writes to properly-aligned 32-bit variables are atomic operations.

So, lock = 0; is atomic.
InterlockedExchange will generate a full memory barrier

http://msdn2.microsoft.com/en-us/library/12a04hfd(VS.80).aspx[^]
A write to a volatile object (volatile write) has Release semantics ... This allows volatile objects to be used for memory locks and releases in multithreaded applications.

For an explaination of full memory barrier and release semantics read:
http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_DevDriver_PG/sgi_html/apa.html[^]

...cmk

Save the whales - collect the whole set

GeneralRe: Question about Interlocked functions Pin
HOW WHAT28-Apr-07 22:21
HOW WHAT28-Apr-07 22:21 
GeneralRe: Question about Interlocked functions Pin
cmk29-Apr-07 0:14
cmk29-Apr-07 0:14 
GeneralRe: Question about Interlocked functions Pin
HOW WHAT29-Apr-07 4:33
HOW WHAT29-Apr-07 4:33 
GeneralRe: Question about Interlocked functions Pin
cmk29-Apr-07 9:13
cmk29-Apr-07 9:13 
GeneralRe: Question about Interlocked functions Pin
HOW WHAT29-Apr-07 20:05
HOW WHAT29-Apr-07 20:05 
GeneralRe: Question about Interlocked functions Pin
HOW WHAT28-Apr-07 22:48
HOW WHAT28-Apr-07 22:48 
GeneralRe: Question about Interlocked functions Pin
cmk29-Apr-07 0:01
cmk29-Apr-07 0:01 
GeneralRe: Question about Interlocked functions Pin
HOW WHAT29-Apr-07 2:49
HOW WHAT29-Apr-07 2:49 
GeneralRe: Question about Interlocked functions Pin
cmk29-Apr-07 9:04
cmk29-Apr-07 9:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.