in reply to Re: threads::shared - when to lock a hash ?
in thread threads::shared - when to lock a hash ?
The first requirement ... dictates the true and comprehensive need for locking. It applies not only in the Perl environment but also in every other situation.
You're at it again. Spouting utter twaddle! Even in the face of prior authoritative information in this thread by the man that knows.
For any value that can be read & written atomically -- which, for example in C on a 64-bit processor, includes all suitably aligned integers, floating point values and addresses up to 64-bits in length -- locking is unnecessary for reading or writing.
And in the case of Perl and threads::shared, scalar variables -- including those embedded within hashes or arrays -- can be read at any time without locking. Even if another thread is attempting to modify that same scalar. You will either get the value before the writer writes, or you'll get the value after it has written.
|
|---|