threadpool 0.0.2 → 0.0.3
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.
- data/lib/threadpool.rb +6 -19
- data/threadpool.gemspec +1 -1
- metadata +1 -1
    
        data/lib/threadpool.rb
    CHANGED
    
    | @@ -19,25 +19,13 @@ module Awakenable | |
| 19 19 | 
             
            			@awakenable.first.read_nonblock 2048
         | 
| 20 20 | 
             
            		rescue Errno::EAGAIN; end
         | 
| 21 21 |  | 
| 22 | 
            -
            		 | 
| 23 | 
            -
            			IO.select([@awakenable.first], nil, nil, time)
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            			true
         | 
| 26 | 
            -
            		rescue Interrupt
         | 
| 27 | 
            -
            			false
         | 
| 28 | 
            -
            		end
         | 
| 22 | 
            +
            		IO.select([@awakenable.first], nil, nil, time)
         | 
| 29 23 | 
             
            	end
         | 
| 30 24 |  | 
| 31 25 | 
             
            	def wake_up
         | 
| 32 26 | 
             
            		@awakenable ||= IO.pipe
         | 
| 33 27 |  | 
| 34 | 
            -
            		 | 
| 35 | 
            -
            			@awakenable.last.write 'x'
         | 
| 36 | 
            -
             | 
| 37 | 
            -
            			true
         | 
| 38 | 
            -
            		rescue
         | 
| 39 | 
            -
            			false
         | 
| 40 | 
            -
            		end
         | 
| 28 | 
            +
            		@awakenable.last.write 'x'
         | 
| 41 29 | 
             
            	end
         | 
| 42 30 | 
             
            end
         | 
| 43 31 |  | 
| @@ -63,8 +51,7 @@ class ThreadPool | |
| 63 51 |  | 
| 64 52 | 
             
            						@pool.wake_up
         | 
| 65 53 | 
             
            					else
         | 
| 66 | 
            -
            						sleep  | 
| 67 | 
            -
             | 
| 54 | 
            +
            						sleep unless die?
         | 
| 68 55 | 
             
            						break if die?
         | 
| 69 56 | 
             
            					end
         | 
| 70 57 | 
             
            				end
         | 
| @@ -123,11 +110,11 @@ class ThreadPool | |
| 123 110 |  | 
| 124 111 | 
             
            		@watcher.process {
         | 
| 125 112 | 
             
            			loop do
         | 
| 126 | 
            -
            				sleep  | 
| 127 | 
            -
            				next | 
| 113 | 
            +
            				sleep if @queue.empty?
         | 
| 114 | 
            +
            				next  if @queue.empty?
         | 
| 128 115 |  | 
| 129 116 | 
             
            				begin
         | 
| 130 | 
            -
            					worker = @pool.find(&:available?) or sleep | 
| 117 | 
            +
            					worker = @pool.find(&:available?) or sleep
         | 
| 131 118 | 
             
            				end until worker
         | 
| 132 119 |  | 
| 133 120 | 
             
            				break if die?
         | 
    
        data/threadpool.gemspec
    CHANGED