Changeset 215

Show
Ignore:
Timestamp:
06/08/05 05:24:39 (3 years ago)
Author:
ged
Message:

- Moved mutex from Entity

Location:
branches/simplest-thing
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/simplest-thing/lib/fm/gameobject.rb

    r204 r215  
    2424require 'digest/md5' 
    2525require 'logger' 
     26require 'sync' 
    2627 
    2728require 'fm/mixins' 
     
    4243    # SVN Id 
    4344    SVNId = %q$Id$ 
    44  
    45     # SVN URL 
    46     SVNURL = %q$URL$ 
    4745 
    4846    # The total number of "attribution" points for this object.  
     
    164162        super() 
    165163 
    166         # Add unique ID and rev 
     164        # Add unique ID, rev, and mutex 
    167165        @id = self.class::makeObjectId( self ) 
    168166        @rev = self.class::rev 
     167        @mutex = Sync::new 
    169168 
    170169        # Call setters for named arguments 
     
    175174 
    176175 
    177     ### Copy initializer -- generate a unique id for cloned objects. 
     176    ### Copy initializer -- generate a unique id and mutex for cloned objects. 
    178177    def initialize_copy( original ) 
    179178        super 
    180179        @id = self.class::makeObjectId( self ) 
     180        @mutex = Sync::new 
    181181        self.log.debug "Cloned #{self.class.name} #{original.id}." 
    182182    end 
     
    193193    # the time of its creation or last upgrade. 
    194194    attr_reader :rev 
     195 
     196    # The Sync mutex for this object 
     197    attr_reader :mutex 
     198 
    195199 
    196200 
  • branches/simplest-thing/tests/gameobject.tests.rb

    r208 r215  
    163163        assert_match( /@test3/, rval, "@test3 ivar" ) 
    164164    end 
     165 
     166 
     167    ### Cloned objects should get unique ids and mutexen 
     168    def test_clonedObjectsShouldHaveUniqueIds 
     169        printTestHeader "GameObject: cloned objects should have unique ids and mutexes" 
     170 
     171        derivClass = Class::new( FaerieMUD::GameObject ) 
     172        derivObj = derivClass::new 
     173        clonedObj = nil 
     174 
     175        assert_nothing_raised do 
     176            clonedObj = derivObj.clone 
     177        end 
     178 
     179        assert_not_same derivObj.id, clonedObj.id 
     180        assert_not_same derivObj.mutex, clonedObj.mutex 
     181    end 
     182 
     183 
     184 
     185 
    165186end 
    166187