sysvmq 0.2.2 → 0.2.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.
- checksums.yaml +5 -5
- data/.github/workflows/tests.yml +19 -0
- data/.gitignore +2 -1
- data/Gemfile +5 -0
- data/README.md +1 -1
- data/ext/extconf.rb +0 -3
- data/ext/sysvmq.c +7 -22
- data/sysvmq.gemspec +3 -5
- data/test/sysv_mq_test.rb +1 -1
- data/test/test_helper.rb +0 -1
- metadata +9 -52
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c3861499e9f5511851b3e0fa8077b255766095843247b58afe465f81e0d01faa
|
4
|
+
data.tar.gz: 315108a5a3ac5eb94e3f3d7f8b2a1e21bacce32f713160184a9f9a429b78ee37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9b55b44e92fb180e06286ac49dffc86083713dcecd2745e9d2d649232213993315d0595aed9f6b446a8fa9806a7cbd454be06594472c9a65c2340fb671ef7f6
|
7
|
+
data.tar.gz: d15b976f57a52a2239424231b495345d5bb884205ec055522beadb0eb43d199ebe88e164492567fdd943ccefe44cd4b8e5227b4d7c150c00ffa807a63a3a5e27
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [push]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
tests:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
strategy:
|
8
|
+
matrix:
|
9
|
+
ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', '3.2' ]
|
10
|
+
name: Ruby ${{ matrix.ruby }} Tests
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v3
|
13
|
+
- name: Set up Ruby
|
14
|
+
uses: ruby/setup-ruby@v1
|
15
|
+
with:
|
16
|
+
ruby-version: ${{ matrix.ruby }}
|
17
|
+
bundler-cache: true
|
18
|
+
- name: Run tests
|
19
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -13,7 +13,7 @@ Note that `sysvmq` doesn't rely on any third-party message broker. The message
|
|
13
13
|
queue is handled by the kernel. It's extremely stable and performant.
|
14
14
|
|
15
15
|
`sysvmq` has been tested heavily in production at Shopify, under more than `100k
|
16
|
-
|
16
|
+
RPS` and is still in use as of Feb, 2020.
|
17
17
|
|
18
18
|
## Installation
|
19
19
|
|
data/ext/extconf.rb
CHANGED
data/ext/sysvmq.c
CHANGED
@@ -14,20 +14,10 @@
|
|
14
14
|
|
15
15
|
#define UNINITIALIZED_ERROR -2
|
16
16
|
|
17
|
-
#if defined(HAVE_RB_THREAD_CALL_WITHOUT_GVL) && defined(HAVE_RUBY_THREAD_H)
|
18
|
-
// 2.0
|
19
17
|
#include <ruby/thread.h>
|
20
18
|
#define WITHOUT_GVL(fn,a,ubf,b) \
|
21
19
|
rb_thread_call_without_gvl((fn),(a),(ubf),(b))
|
22
20
|
|
23
|
-
#elif defined(HAVE_RB_THREAD_BLOCKING_REGION)
|
24
|
-
// 1.9
|
25
|
-
typedef VALUE (*my_blocking_fn_t)(void*);
|
26
|
-
#define WITHOUT_GVL(fn,a,ubf,b) \
|
27
|
-
rb_thread_blocking_region((my_blocking_fn_t)(fn),(a),(ubf),(b))
|
28
|
-
|
29
|
-
#endif
|
30
|
-
|
31
21
|
// This is the buffer passed to msg{rcv,snd,ctl}(2)
|
32
22
|
typedef struct {
|
33
23
|
long mtype;
|
@@ -47,12 +37,6 @@ typedef struct {
|
|
47
37
|
}
|
48
38
|
sysvmq_t;
|
49
39
|
|
50
|
-
static void
|
51
|
-
sysvmq_mark(void *ptr)
|
52
|
-
{
|
53
|
-
// noop, no Ruby objects in the internal struct currently
|
54
|
-
}
|
55
|
-
|
56
40
|
static void
|
57
41
|
sysvmq_free(void *ptr)
|
58
42
|
{
|
@@ -70,12 +54,13 @@ sysvmq_memsize(const void* ptr)
|
|
70
54
|
|
71
55
|
static const rb_data_type_t
|
72
56
|
sysvmq_type = {
|
73
|
-
"sysvmq_type",
|
74
|
-
{
|
75
|
-
|
76
|
-
sysvmq_free,
|
77
|
-
sysvmq_memsize
|
78
|
-
}
|
57
|
+
.wrap_struct_name = "sysvmq_type",
|
58
|
+
.function = {
|
59
|
+
.dmark = NULL, // no Ruby objects in the internal struct currently
|
60
|
+
.dfree = sysvmq_free,
|
61
|
+
.dsize = sysvmq_memsize,
|
62
|
+
},
|
63
|
+
.flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
|
79
64
|
};
|
80
65
|
|
81
66
|
static VALUE
|
data/sysvmq.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "sysvmq"
|
7
|
-
spec.version = '0.2.
|
7
|
+
spec.version = '0.2.3'
|
8
8
|
spec.authors = ["Simon Eskildsen"]
|
9
9
|
spec.email = ["sirup@sirupsen.com"]
|
10
10
|
spec.summary = %q{Ruby wrapper for SysV Message Queues}
|
@@ -12,13 +12,11 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.homepage = "https://github.com/Sirupsen/sysvmq"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
16
|
+
|
15
17
|
spec.files = `git ls-files`.split($/)
|
16
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
20
|
spec.require_paths = ["lib"]
|
19
21
|
spec.extensions = ["ext/extconf.rb"]
|
20
|
-
|
21
|
-
spec.add_development_dependency "bundler"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rake-compiler", "~> 0.9"
|
24
22
|
end
|
data/test/sysv_mq_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,57 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sysvmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Eskildsen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake-compiler
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.9'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0.9'
|
11
|
+
date: 2023-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
55
13
|
description: Ruby wrapper for SysV Message Queues
|
56
14
|
email:
|
57
15
|
- sirup@sirupsen.com
|
@@ -60,8 +18,8 @@ extensions:
|
|
60
18
|
- ext/extconf.rb
|
61
19
|
extra_rdoc_files: []
|
62
20
|
files:
|
21
|
+
- ".github/workflows/tests.yml"
|
63
22
|
- ".gitignore"
|
64
|
-
- ".travis.yml"
|
65
23
|
- Gemfile
|
66
24
|
- LICENSE.txt
|
67
25
|
- README.md
|
@@ -78,7 +36,7 @@ homepage: https://github.com/Sirupsen/sysvmq
|
|
78
36
|
licenses:
|
79
37
|
- MIT
|
80
38
|
metadata: {}
|
81
|
-
post_install_message:
|
39
|
+
post_install_message:
|
82
40
|
rdoc_options: []
|
83
41
|
require_paths:
|
84
42
|
- lib
|
@@ -86,16 +44,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
86
44
|
requirements:
|
87
45
|
- - ">="
|
88
46
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
47
|
+
version: 2.5.0
|
90
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
49
|
requirements:
|
92
50
|
- - ">="
|
93
51
|
- !ruby/object:Gem::Version
|
94
52
|
version: '0'
|
95
53
|
requirements: []
|
96
|
-
|
97
|
-
|
98
|
-
signing_key:
|
54
|
+
rubygems_version: 3.3.7
|
55
|
+
signing_key:
|
99
56
|
specification_version: 4
|
100
57
|
summary: Ruby wrapper for SysV Message Queues
|
101
58
|
test_files:
|