Vladimir Lipsky <[EMAIL PROTECTED]> wrote:
> From: "Leopold Toetsch" <[EMAIL PROTECTED]>

>> That isn't necessary. One rmb() after resetting C<str_val> ought to be
>> enough. It ensures that in all cases the other CPU reads str_val as
>> NULL. If the vtable is still pointing to the PerlInt vtable, its a user

> Having an only rmb() on the writing CPU hardly assures that.

> http://lse.sourceforge.net/locking/wmbdd.html

Seems that we got a problem on alphas then. I can see several solutions
to accomodate such CPUs:
- use only PMCs that don't cross cache lines
- insert rmb_if_needed() for all string vtables that don't lock
- lock all string vtable access
- move string pointer into PMC_EXT

> 0x4C56

Thanks for the pointer,
leo

Reply via email to