Click here to Skip to main content
15,887,337 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Skippums22-Sep-09 10:53
Skippums22-Sep-09 10:53 
GeneralRe: What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
cmk22-Sep-09 10:59
cmk22-Sep-09 10:59 
GeneralRe: What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Skippums22-Sep-09 11:14
Skippums22-Sep-09 11:14 
GeneralRe: What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
cmk22-Sep-09 11:55
cmk22-Sep-09 11:55 
AnswerRe: [Solved] What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Randor 22-Sep-09 12:04
professional Randor 22-Sep-09 12:04 
GeneralRe: [Solved] What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Skippums22-Sep-09 12:20
Skippums22-Sep-09 12:20 
GeneralRe: [Solved] What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Randor 22-Sep-09 13:33
professional Randor 22-Sep-09 13:33 
GeneralRe: [Solved] What is the 32-bit form of the _InterlockedIncrement intrinsic? Pin
Skippums22-Sep-09 14:00
Skippums22-Sep-09 14:00 
If I understand correctly, you are suggesting the following sequence of events:

1) I call my wrapper method in thread1 passing &m_Lock, but somewhere prior to executing the atomic increment, there is a context switch to thread2.
2) Something in thread2 modifies the value of m_Lock, then switches control back to thread1
3) thread1 then increments the new value of m_Lock

Unless I am missing something, the critical section of these operations is still atomic. My method doesn't know what the value of m_Lock is, so whether I increment it before or after thread2 performs the modification is inconsequential. The only thing that could break this would be if &m_Lock is volatile, which could break the code even if calling the intrinsic directly.

Sure, my function won't necessarily be called and return without a context switch, but it doesn't effect (as far as I can tell) the correctness of the code. Is there something else I am still missing? Thanks for your help thus far,

Sounds like somebody's got a case of the Mondays

-Jeff

QuestionGreyscale image from raw data Pin
David Ferreira22-Sep-09 4:57
David Ferreira22-Sep-09 4:57 
AnswerRe: Greyscale image from raw data Pin
includeh1022-Sep-09 5:20
includeh1022-Sep-09 5:20 
AnswerRe: Greyscale image from raw data Pin
enhzflep22-Sep-09 20:02
enhzflep22-Sep-09 20:02 
GeneralRe: Greyscale image from raw data Pin
David Ferreira22-Sep-09 21:26
David Ferreira22-Sep-09 21:26 
GeneralRe: Greyscale image from raw data Pin
enhzflep22-Sep-09 23:15
enhzflep22-Sep-09 23:15 
GeneralRe: Greyscale image from raw data Pin
David Ferreira23-Sep-09 0:58
David Ferreira23-Sep-09 0:58 
AnswerRe: Greyscale image from raw data Pin
David Ferreira19-Nov-09 23:30
David Ferreira19-Nov-09 23:30 
QuestionCreation of install shield Pin
shir_k22-Sep-09 3:55
shir_k22-Sep-09 3:55 
AnswerRe: Creation of install shield Pin
PJ Arends22-Sep-09 4:55
professionalPJ Arends22-Sep-09 4:55 
GeneralRe: Creation of install shield Pin
shir_k4-Oct-09 21:24
shir_k4-Oct-09 21:24 
Questionhow to convert char * to char[100] Pin
prithaa22-Sep-09 3:54
prithaa22-Sep-09 3:54 
AnswerRe: how to convert char * to char[100] Pin
Chris Losinger22-Sep-09 4:10
professionalChris Losinger22-Sep-09 4:10 
AnswerRe: how to convert char * to char[100] Pin
Rajesh R Subramanian22-Sep-09 4:30
professionalRajesh R Subramanian22-Sep-09 4:30 
Generalagree! Pin
etkid8422-Sep-09 5:55
etkid8422-Sep-09 5:55 
GeneralRe: agree! Pin
Rajesh R Subramanian22-Sep-09 6:01
professionalRajesh R Subramanian22-Sep-09 6:01 
Generaloops, my bad Pin
etkid8422-Sep-09 6:10
etkid8422-Sep-09 6:10 
AnswerRe: how to convert char * to char[100] Pin
Skippums22-Sep-09 8:57
Skippums22-Sep-09 8:57 

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.