ó
nKaMc           @   s/   d  Z  d Z d d l Z d d d „  ƒ  YZ d S(   t   Brocks   $Feb 19, 2011 11:52:30 AM$iÿÿÿÿNt   CompareAndSwapRegisterc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s   CompareAndSwap classc         C   s   d |  _  t j ƒ  |  _ d  S(   Ni    (   t   valuet	   threadingt   Lockt   vallock(   t   self(    (    sc   /backhome/brock/public_html/classes/Fall2018/csci373/notes/CompareAndSwap/CompareAndSwapRegister.pyt   __init__   s    	c         C   sG   z2 |  j  j ƒ  |  j } | | k r1 | |  _ n  Wd  |  j  j ƒ  X| S(   N(   R   t   acquireR   t   release(   R   t   oldvalt   newvalt   presval(    (    sc   /backhome/brock/public_html/classes/Fall2018/csci373/notes/CompareAndSwap/CompareAndSwapRegister.pyt   CompareAndSwap   s    	c         C   s   t  |  j ƒ S(   N(   t   strR   (   R   (    (    sc   /backhome/brock/public_html/classes/Fall2018/csci373/notes/CompareAndSwap/CompareAndSwapRegister.pyt   __str__   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    sc   /backhome/brock/public_html/classes/Fall2018/csci373/notes/CompareAndSwap/CompareAndSwapRegister.pyR      s   		
(    (   t
   __author__t   __date__R   R   (    (    (    sc   /backhome/brock/public_html/classes/Fall2018/csci373/notes/CompareAndSwap/CompareAndSwapRegister.pyt   <module>   s   