such_pool 0.1.0
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 +7 -0
- data/lib/such_pool.rb +26 -0
- metadata +59 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fcbda86df2122fcc6fe6a98ada5c9210611b4aa9
|
4
|
+
data.tar.gz: 53642a7127ee0e4b03da5df729b6c72b5018ad7c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 572702aa621dfb231ed4ed6ee9b1123498daabbd0722bb95767f234c8379614d602b5353a07d6d2993689d37ad46c315a3dfe9344afe0eeaef41abe213b264cd
|
7
|
+
data.tar.gz: 6485db555623bf3567bc07d92cee0ad43b2594aa6f6cef383d94a1fcbc211624eea920070d3e72636fc78b222c39d2b42a8e498490e6f43c41704072866e1b32
|
data/lib/such_pool.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# Such Pool is the simplest implementation as possible of a
|
2
|
+
# Thread pool in ruby. Making possible to schedule and run your
|
3
|
+
# operation on background
|
4
|
+
class SuchPool
|
5
|
+
VERSION = '0.1.0'.freeze
|
6
|
+
|
7
|
+
attr_reader :pool_size
|
8
|
+
|
9
|
+
def initialize(pool_size: 5)
|
10
|
+
@pool_size = pool_size
|
11
|
+
@queue = Queue.new
|
12
|
+
@pool_size.times do
|
13
|
+
Thread.new do
|
14
|
+
loop do
|
15
|
+
lambd = @queue.pop
|
16
|
+
lambd.call
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def run_background &lambd
|
23
|
+
@queue << lambd
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: such_pool
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pedro Medeiros
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.4'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.4'
|
27
|
+
description: A very simple thread pool
|
28
|
+
email:
|
29
|
+
- pedrosnk@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- lib/such_pool.rb
|
35
|
+
homepage: http://github.com/pedrosnk/such_pool
|
36
|
+
licenses:
|
37
|
+
- MIT
|
38
|
+
metadata: {}
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options: []
|
41
|
+
require_paths:
|
42
|
+
- lib
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
requirements: []
|
54
|
+
rubyforge_project:
|
55
|
+
rubygems_version: 2.5.1
|
56
|
+
signing_key:
|
57
|
+
specification_version: 4
|
58
|
+
summary: A simple thread pool
|
59
|
+
test_files: []
|