parallel_server 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/parallel_server/prefork.rb +17 -15
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 60f22791a70556733877e1abacd86ffc257fafd6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 66d5e90cdca52f41dc687cd160e54b8fb030f858
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0d8e13cf7f83e1581706c0013f03e46cdec97490c9d2a13345fca178212201570d6b7836772555d7b8cb8b6ed1a6051a4f41985fe01d0a066bd5218dcb02a79b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 27f616dc7eab3d89a42faf45a48f3d2b9596ba43783855d19f8840b18675fa93ff8991961f15b735ec470423a8d3649a06b8c7e38c12e0227d2df711ed6bbeb6
         
     | 
| 
         @@ -34,9 +34,9 @@ module ParallelServer 
     | 
|
| 
       34 
34 
     | 
    
         
             
                  host, port, opts = parse_args(*args)
         
     | 
| 
       35 
35 
     | 
    
         
             
                  @host, @port, @opts = host, port, opts
         
     | 
| 
       36 
36 
     | 
    
         
             
                  set_variables_from_opts
         
     | 
| 
       37 
     | 
    
         
            -
                  @from_child = {}             # IO => pid
         
     | 
| 
       38 
     | 
    
         
            -
                  @to_child = {}               #  
     | 
| 
       39 
     | 
    
         
            -
                  @child_status = {}           #  
     | 
| 
      
 37 
     | 
    
         
            +
                  @from_child = {}             # IO(r) => pid
         
     | 
| 
      
 38 
     | 
    
         
            +
                  @to_child = {}               # IO(r) => IO(w)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  @child_status = {}           # IO(r) => Hash
         
     | 
| 
       40 
40 
     | 
    
         
             
                  @children = []               # pid
         
     | 
| 
       41 
41 
     | 
    
         
             
                  @loop = true
         
     | 
| 
       42 
42 
     | 
    
         
             
                end
         
     | 
| 
         @@ -167,18 +167,17 @@ module ParallelServer 
     | 
|
| 
       167 
167 
     | 
    
         
             
                  readable, = IO.select(rset, nil, nil, 0.1)
         
     | 
| 
       168 
168 
     | 
    
         
             
                  if readable
         
     | 
| 
       169 
169 
     | 
    
         
             
                    readable.each do |from_child|
         
     | 
| 
       170 
     | 
    
         
            -
                      pid = @from_child[from_child]
         
     | 
| 
       171 
170 
     | 
    
         
             
                      if st = Conversation.recv(from_child)
         
     | 
| 
       172 
     | 
    
         
            -
                        @child_status[ 
     | 
| 
      
 171 
     | 
    
         
            +
                        @child_status[from_child].update st
         
     | 
| 
       173 
172 
     | 
    
         
             
                        if st[:status] == :stop
         
     | 
| 
       174 
     | 
    
         
            -
                          @to_child[ 
     | 
| 
       175 
     | 
    
         
            -
                          @to_child.delete  
     | 
| 
      
 173 
     | 
    
         
            +
                          @to_child[from_child].close rescue nil
         
     | 
| 
      
 174 
     | 
    
         
            +
                          @to_child.delete from_child
         
     | 
| 
       176 
175 
     | 
    
         
             
                        end
         
     | 
| 
       177 
176 
     | 
    
         
             
                      else
         
     | 
| 
       178 
177 
     | 
    
         
             
                        @from_child.delete from_child
         
     | 
| 
       179 
     | 
    
         
            -
                        @to_child[ 
     | 
| 
       180 
     | 
    
         
            -
                        @to_child.delete  
     | 
| 
       181 
     | 
    
         
            -
                        @child_status.delete  
     | 
| 
      
 178 
     | 
    
         
            +
                        @to_child[from_child].close rescue nil
         
     | 
| 
      
 179 
     | 
    
         
            +
                        @to_child.delete from_child
         
     | 
| 
      
 180 
     | 
    
         
            +
                        @child_status.delete from_child
         
     | 
| 
       182 
181 
     | 
    
         
             
                        from_child.close
         
     | 
| 
       183 
182 
     | 
    
         
             
                      end
         
     | 
| 
       184 
183 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -242,13 +241,15 @@ module ParallelServer 
     | 
|
| 
       242 
241 
     | 
    
         
             
                    to_child[1].close
         
     | 
| 
       243 
242 
     | 
    
         
             
                    @on_start.call if @on_start
         
     | 
| 
       244 
243 
     | 
    
         
             
                    Child.new(@sockets, @opts, from_child[1], to_child[0]).start(@block)
         
     | 
| 
      
 244 
     | 
    
         
            +
                    exit! true
         
     | 
| 
       245 
245 
     | 
    
         
             
                  end
         
     | 
| 
       246 
246 
     | 
    
         
             
                  from_child[1].close
         
     | 
| 
       247 
247 
     | 
    
         
             
                  to_child[0].close
         
     | 
| 
       248 
     | 
    
         
            -
                   
     | 
| 
       249 
     | 
    
         
            -
                  @ 
     | 
| 
      
 248 
     | 
    
         
            +
                  r, w = from_child[0], to_child[1]
         
     | 
| 
      
 249 
     | 
    
         
            +
                  @from_child[r] = pid
         
     | 
| 
      
 250 
     | 
    
         
            +
                  @to_child[r] = w
         
     | 
| 
      
 251 
     | 
    
         
            +
                  @child_status[r] = {status: :run, connections: {}}
         
     | 
| 
       250 
252 
     | 
    
         
             
                  @children.push pid
         
     | 
| 
       251 
     | 
    
         
            -
                  @child_status[pid] = {status: :run, connections: {}}
         
     | 
| 
       252 
253 
     | 
    
         
             
                  @on_child_start.call(pid) if @on_child_start
         
     | 
| 
       253 
254 
     | 
    
         
             
                end
         
     | 
| 
       254 
255 
     | 
    
         | 
| 
         @@ -334,7 +335,7 @@ module ParallelServer 
     | 
|
| 
       334 
335 
     | 
    
         
             
                        @threads[thr] = addr
         
     | 
| 
       335 
336 
     | 
    
         
             
                      end
         
     | 
| 
       336 
337 
     | 
    
         
             
                      count += 1
         
     | 
| 
       337 
     | 
    
         
            -
                      break if count >= max_use
         
     | 
| 
      
 338 
     | 
    
         
            +
                      break if max_use > 0 && count >= max_use
         
     | 
| 
       338 
339 
     | 
    
         
             
                    end
         
     | 
| 
       339 
340 
     | 
    
         
             
                  ensure
         
     | 
| 
       340 
341 
     | 
    
         
             
                    @status = :stop
         
     | 
| 
         @@ -424,7 +425,8 @@ module ParallelServer 
     | 
|
| 
       424 
425 
     | 
    
         
             
                  # @return [nil]
         
     | 
| 
       425 
426 
     | 
    
         
             
                  def accept
         
     | 
| 
       426 
427 
     | 
    
         
             
                    while true
         
     | 
| 
       427 
     | 
    
         
            -
                       
     | 
| 
      
 428 
     | 
    
         
            +
                      timeout = max_idle > 0 ? max_idle : nil
         
     | 
| 
      
 429 
     | 
    
         
            +
                      readable, = IO.select(@sockets, nil, nil, timeout)
         
     | 
| 
       428 
430 
     | 
    
         
             
                      return nil unless readable
         
     | 
| 
       429 
431 
     | 
    
         
             
                      r, = readable
         
     | 
| 
       430 
432 
     | 
    
         
             
                      begin
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: parallel_server
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tomita Masahiro
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-04-08 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: Parallel TCP Server library. This is easy to make Multi-Process / Multi-Thread
         
     | 
| 
       14 
14 
     | 
    
         
             
              server
         
     |