is +=1 thread safe

Arnaud Delobelle arnodel at googlemail.com
Sat May 3 02:36:13 EDT 2008


Marc 'BlackJack' Rintsch <bj_666 at gmx.net> writes:

> On Fri, 02 May 2008 19:23:54 +0100, Arnaud Delobelle wrote:
>
>> Marc 'BlackJack' Rintsch <bj_666 at gmx.net> writes:
>> 
>>>
>>> There are no modern processors with an opcode for incrementing a memory
>>> location!?  At least my C64 can do that.  ;-)
>> 
>> Indeed!  I remember a simple use was to make the border change colour
>> very fast, a v. cool effect when you're 12!
>>  
>>         CLV
>> LOOP:   INC $D020
>>         BVC LOOP
>> 
>> (from memory, untested!)
>
> That works but I think
>
> LOOP:	INC $D020
> 	JMP LOOP
>
> is a bit more straight forward.  Shorter in opcodes, equal in bytes, the
> loop is as fast but you save the two cycles of the CLV.  :-)

Ah you're right!  I thought I remembered that Bxx instructions took 2
cycles whereas a JMP takes 3.  I've checked it on the wonderful wide
web and Bxx takes 2 cycles if the branch fails, but 3 cycles if the
branch succeeds :) (or even 5 if it branches to a new page).

To bring this back on topic, I would qualify my code snippet as more
"Pythonesque" than yours ;)

-- 
Arnaud



More information about the Python-list mailing list