Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

So on every other platform than alpha thread2 works correctly without any barrier?

Does this mean when you use double-checked locking on p on non-alpha systems, you do not need any kind of synchronization on the fast path where p is initialized?

So this would be correct?

    if (!p) {
      T *x = new T;
      release_barrier();
      if (!compare_and_swap(p, 0, x))
        delete x;
    }


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: