1. paintcan
  2. pyamt

Commits

Sebastian Hubbard  committed 7d37b58 Draft

no change, just noting that the writer synchronization is not. but why...

  • Participants
  • Parent commits 7010c32
  • Branches default

Comments (0)

Files changed (1)

File pyamt.c

View file
  • Ignore whitespace
 
   while (attempts < maximum_attempts) {
     old_root = *amt_root_ref(current_amt); /* marshalled root */
+
     void *v = amt_alloc_value(current_amt, vallen + sizeof(int));    
     *((int *) v) = vallen;
     memcpy(v + sizeof(int), val, vallen);
 
     sync_pyamt_image();
     new_root = marshal_fn(amt_insert(current_amt, unmarshal_fn(old_root), key, keylen, v));
+
     sync_pyamt_image();
-
     if (__sync_bool_compare_and_swap(amt_root_ref(current_amt), old_root, new_root)) {
       /* great success */
       Py_RETURN_NONE;