I have this code within an initialize method for spawning a new thread to 
perform routine cleanup on the object.  For some reason when sleep() is 
called the thread seems to never return to execute puts and self.clean().

Any help would be greatly appreciated : )

   @timeout = 10
   @guard = Thread.new {
     loop do
       sleep(@timout)
       puts "#{@timeout}"
       self.clean
     end
   }