Does the keyword volatile work?
Stephen P. Smith
ischis2@cox.net
Mon May 12 20:54:00 GMT 2003
Ok, I did what I thought you told me to do, and it didn't work.
assignThisNow isn't getting set right away.
258:../../code/ipc/ipck.cpp **** DWORD CDECL someFunction( DWORD, DWORD
p1, DWORD, DWORD, DWORD, DWORD)
259:../../code/ipc/ipck.cpp **** {
433 .LM1:
434 0000 55 pushl %ebp
435 0001 89E5 movl %esp, %ebp
436 0003 56 pushl %esi
437 0004 53 pushl %ebx
260:../../code/ipc/ipck.cpp **** volatile DWORD assignThisNow =
*(volatile DWORD *)&p1;
261:../../code/ipc/ipck.cpp **** NumericNameTYP threadName =
(NumericNameTYP) assignThisNow;
262:../../code/ipc/ipck.cpp **** DWORD periodIndex = 0;
439 .LM2:
440 .LBB2:
441 0005 31F6 xorl %esi, %esi
Fergus Henderson wrote:
>On 12-May-2003, Stephen P. Smith <ischis2@cox.net> wrote:
>
>
>>In the code fragment below which was produced with a 3.3 version of the gcc
>>compiler,
>>why isn't the variable p1 assigned to mailboxHandle immediately? I believe
>>that the
>>keyword volatile should cause that to happen.
>>
>>
>
>Firstly, I would suggest using `*(volatile DWORD *)&p1'
>rather than `(volatile DWORD)p1'.
>
>Secondly, if you want to be sure that the value will be assigned to
>the target variable immediately, you need to declare the target
>variable as volatile.
>
>
>
More information about the Gcc
mailing list