Changeset 286

Show
Ignore:
Timestamp:
12/17/07 10:07:26 (8 months ago)
Author:
gethema..@gmail.com
Message:

fix the bug with removal of socket ids aftera worker is delete

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/README

    r280 r286  
    1111Copyright (c) 2006 Ezra Zygmuntowicz,skaar[at]waste[dot]org, 
    1212 
    13 Copyright (c) 2007 Hemant Kumar (mail[at]gnufied[dot]org) 
     13Copyright (c) 2007 Hemant Kumar (gethemant [at] gmail.com ) 
     14 
    1415 
    1516== Usage 
     
    415416 
    416417    You are encouraged to look into framework directory and see the code that implements all this stuff.  The guts of 
    417     this new version of bdrb is based on this library which will be released soon as a separate entity. 
     418    this new version of bdrb is based on packet library(http://packet.googlecode.com ) 
    418419 
    419420 
  • trunk/framework/double_keyed_hash.rb

    r283 r286  
    1616 
    1717  def delete(key) 
     18    worker_key = @keys1[key] 
    1819    @keys1.delete(key) 
    19     @internal_hash.delete(key) 
     20    if worker_key 
     21      @internal_hash.delete(worker_key) 
     22    else 
     23      @internal_hash.delete(key) 
     24    end 
    2025  end 
    2126 
  • trunk/framework/packet_master.rb

    r283 r286  
    6363        worker_instance.receive_data(raw_data) if worker_instance.respond_to?(:receive_data) 
    6464      rescue DisconnectError => sock_error 
    65         read_ios.delete(t_sock) 
     65        remove_worker(t_sock) 
    6666      end 
     67    end 
     68 
     69    def remove_worker(t_sock) 
     70      @live_workers.delete(t_sock.fileno) 
     71      read_ios.delete(t_sock) 
    6772    end 
    6873 
  • trunk/server/master_worker.rb

    r283 r286  
    5555        ask_worker(worker_name,:job_key => t_data[:job_key],:type => :request, :data => { :worker_method => :exit}) 
    5656      rescue Packet::DisconnectError => sock_error 
    57         reactor.live_workers.delete(worker_name_key) 
     57        # reactor.live_workers.delete(worker_name_key) 
     58        reactor.remove_worker(sock_error) 
    5859      rescue 
    5960        debug_logger.info($!.to_s)