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
