[Openmcl-cvs-notifications] Commit: ccl/level-1

gb at clozure.com gb at clozure.com
Sat Aug 18 19:13:04 MDT 2007


Affected files with versions:
  l1-dcode.lisp,1.26
-----------------------------------
Details:

  Update of /usr/local/tmpcvs/openmcl-dev/ccl/level-1
  In directory clozure.com:/tmp/checkoutiB7U2/ccl/level-1
  
  Modified Files:
  	l1-dcode.lisp 
  Log Message:
  Define and use %GF-DISPATCH-TABLE-STORE-CONDITIONAL; this is intended
  to avoid race conditions where two threads try to update a distpatch
  table index with different {wrapper, combined-method} pairs at the same
  time.  (As it's written, if the store-conditional fails because a slot
  that we thought was free is now in use, we simply don't cache the
  pair and get a cache miss the next time; that may or may not be more
  work than repeating the whole process would be.)
  
  The store-conditional is used on attempt to update the combined-method
  slot in the pair; the wrapper slot is only updated if the store-conditional
  succeeds.  Code which probes the wrapper slots shouldn't be confused by
  a half-updated pair (should never see a non-null wrapper slot and a
  null combined-method slot.)


More information about the Openmcl-cvs-notifications mailing list