lockf.rb 0.12.0 → 1.0.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 +4 -4
- data/.clang-format +11 -0
- data/.rubocop.yml +5 -1
- data/Gemfile +0 -1
- data/README.md +12 -29
- data/Rakefile.rb +11 -9
- data/ext/lockf.rb/lockf.c +12 -12
- data/lib/lockf/version.rb +1 -1
- data/lib/lockf.rb +8 -6
- data/lockf.rb.gemspec +6 -9
- data/share/lockf.rb/examples/1_lockfile_blocking_variant.rb +1 -1
- data/share/lockf.rb/examples/2_lockfile_nonblocking_variant.rb +1 -1
- data/test/lock_file_test.rb +25 -39
- data/test/readme_test.rb +0 -2
- data/test/setup.rb +0 -2
- metadata +18 -60
- data/ext/lockf.rb/lockf.h +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05e204191db7552902307b79f09636be97f36fba053a89c5ab849c6dd0205830
|
4
|
+
data.tar.gz: 82167b478eae279325094a0ba29b8d75500dc6d0a53ea32fd24ed0ef200fa643
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31b69f15f99e3a4b6f522de3b708130ee67ab3a3c5498df989e034bf281f0c02463f360d948150ca9cd562e85a9fd4a8d802d27dad6fa014e289abaa33c6f5d6
|
7
|
+
data.tar.gz: 8b9d9b5979cf813a0234054531e0fe4e6d7c7be83221f49540aeaec97d94347db851756fece830b4f711da42683d4195589f7d3578264a232d6aedd37d7d0377
|
data/.clang-format
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
BasedOnStyle: LLVM
|
2
|
+
IndentWidth: 2
|
3
|
+
SortIncludes: false
|
4
|
+
UseTab: Never
|
5
|
+
BreakBeforeBraces: Allman
|
6
|
+
AllowShortFunctionsOnASingleLine: Inline
|
7
|
+
AlwaysBreakAfterDefinitionReturnType: TopLevel
|
8
|
+
BreakBeforeBinaryOperators: All
|
9
|
+
BinPackArguments: false
|
10
|
+
AlignConsecutiveAssignments: true
|
11
|
+
AlwaysBreakAfterReturnType: None
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,21 +1,12 @@
|
|
1
1
|
## About
|
2
2
|
|
3
|
-
lockf.rb
|
3
|
+
lockf.rb provides Ruby bindings for
|
4
4
|
[lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3).
|
5
5
|
The
|
6
6
|
[lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
|
7
7
|
function implements an advisory-mode lock that can be placed on select
|
8
8
|
regions of a file, or on the entire contents of a file.
|
9
9
|
|
10
|
-
[lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
|
11
|
-
can be used to synchronize access to a file between multiple
|
12
|
-
processes, or be used more generally to synchronize access to a shared
|
13
|
-
resource being accessed by multiple processes at the same time. When used
|
14
|
-
generally,
|
15
|
-
[lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
|
16
|
-
can provide something similar to a mutex that works across multiple
|
17
|
-
processes rather than multiple threads.
|
18
|
-
|
19
10
|
## Examples
|
20
11
|
|
21
12
|
### LockFile
|
@@ -44,7 +35,7 @@ end
|
|
44
35
|
sleep(3)
|
45
36
|
lockf.release
|
46
37
|
Process.wait(pid)
|
47
|
-
lockf.
|
38
|
+
lockf.close
|
48
39
|
|
49
40
|
##
|
50
41
|
# Lock acquired by parent process (2023-02-11 16:43:15 UTC)
|
@@ -76,7 +67,7 @@ end
|
|
76
67
|
sleep 3
|
77
68
|
lockf.release
|
78
69
|
Process.wait(pid)
|
79
|
-
lockf.
|
70
|
+
lockf.close
|
80
71
|
|
81
72
|
##
|
82
73
|
# Lock acquired by parent process (2023-02-11 19:03:05 UTC)
|
@@ -131,32 +122,24 @@ file.close
|
|
131
122
|
# Lock released
|
132
123
|
```
|
133
124
|
|
134
|
-
##
|
125
|
+
## Documentation
|
135
126
|
|
136
|
-
|
137
|
-
|
127
|
+
A complete API reference is available at
|
128
|
+
[0x1eef.github.io/x/lockf.rb](https://0x1eef.github.io/x/lockf.rb).
|
138
129
|
|
139
130
|
## Install
|
140
131
|
|
141
|
-
**Git**
|
142
|
-
|
143
|
-
lockf.rb is distributed as a RubyGem through its git repositories. <br>
|
144
|
-
[GitHub](https://github.com/0x1eef/lockf.rb),
|
145
|
-
and
|
146
|
-
[GitLab](https://gitlab.com/0x1eef/lockf.rb)
|
147
|
-
are available as sources.
|
148
|
-
|
149
|
-
``` ruby
|
150
|
-
# Gemfile
|
151
|
-
gem "lock.fb", github: "0x1eef/lockf.rb", tag: "v0.12.0"
|
152
|
-
```
|
153
|
-
|
154
132
|
**Rubygems.org**
|
155
133
|
|
156
|
-
|
134
|
+
lockf.rb can be installed via rubygems.org.
|
157
135
|
|
158
136
|
gem install lockf.rb
|
159
137
|
|
138
|
+
## Sources
|
139
|
+
|
140
|
+
* [GitHub](https://github.com/0x1eef/lockf.rb#readme)
|
141
|
+
* [GitLab](https://gitlab.com/0x1eef/lockf.rb#about)
|
142
|
+
|
160
143
|
## License
|
161
144
|
|
162
145
|
[BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
|
data/Rakefile.rb
CHANGED
@@ -1,21 +1,23 @@
|
|
1
|
+
require "bundler/setup"
|
1
2
|
require "rake/extensiontask"
|
2
3
|
require "rake/testtask"
|
3
4
|
|
4
|
-
namespace :
|
5
|
-
desc "Run
|
6
|
-
task :
|
7
|
-
sh "
|
5
|
+
namespace :clang do
|
6
|
+
desc "Run clang-format"
|
7
|
+
task :format do
|
8
|
+
sh "clang-format -style=file:.clang-format -i ext/lockf.rb/*.c"
|
8
9
|
end
|
10
|
+
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
namespace :ruby do
|
13
|
+
desc "Run rubocop"
|
14
|
+
task :format do
|
15
|
+
sh "bundle exec rubocop -A"
|
13
16
|
end
|
14
17
|
end
|
15
|
-
task
|
18
|
+
task format: %w[clang:format ruby:format]
|
16
19
|
|
17
20
|
Rake::ExtensionTask.new("lockf.rb")
|
18
|
-
|
19
21
|
Rake::TestTask.new do |t|
|
20
22
|
t.test_files = FileList["test/*_test.rb"]
|
21
23
|
t.verbose = true
|
data/ext/lockf.rb/lockf.c
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
#include <ruby.h>
|
2
2
|
#include <unistd.h>
|
3
3
|
#include <errno.h>
|
4
|
-
#include "lockf.h"
|
5
4
|
|
6
5
|
static VALUE
|
7
6
|
lockf_lock(VALUE self, VALUE fd, VALUE cmd, VALUE len)
|
@@ -11,26 +10,27 @@ lockf_lock(VALUE self, VALUE fd, VALUE cmd, VALUE len)
|
|
11
10
|
Check_Type(fd, T_FIXNUM);
|
12
11
|
Check_Type(cmd, T_FIXNUM);
|
13
12
|
Check_Type(len, T_FIXNUM);
|
14
|
-
errno
|
13
|
+
errno = 0;
|
15
14
|
result = lockf(NUM2INT(fd), NUM2INT(cmd), NUM2INT(len));
|
16
|
-
if (result ==
|
17
|
-
|
18
|
-
} else {
|
15
|
+
if (result == 0)
|
16
|
+
{
|
19
17
|
return INT2NUM(result);
|
20
18
|
}
|
19
|
+
else
|
20
|
+
{
|
21
|
+
rb_syserr_fail(errno, "lockf");
|
22
|
+
}
|
21
23
|
}
|
22
24
|
|
23
25
|
void
|
24
26
|
Init_lockf(void)
|
25
27
|
{
|
26
|
-
VALUE cLockf
|
28
|
+
VALUE cLockf;
|
27
29
|
|
28
|
-
rb_require("fcntl");
|
29
30
|
cLockf = rb_define_class("LockFile", rb_cObject);
|
30
|
-
|
31
|
-
rb_define_const(
|
32
|
-
rb_define_const(
|
33
|
-
rb_define_const(
|
34
|
-
rb_define_const(mFcntl, "F_TEST", INT2NUM(F_TEST));
|
31
|
+
rb_define_const(cLockf, "F_LOCK", INT2NUM(F_LOCK));
|
32
|
+
rb_define_const(cLockf, "F_TLOCK", INT2NUM(F_TLOCK));
|
33
|
+
rb_define_const(cLockf, "F_ULOCK", INT2NUM(F_ULOCK));
|
34
|
+
rb_define_const(cLockf, "F_TEST", INT2NUM(F_TEST));
|
35
35
|
rb_define_singleton_method(cLockf, "lockf", lockf_lock, 3);
|
36
36
|
}
|
data/lib/lockf/version.rb
CHANGED
data/lib/lockf.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
##
|
2
2
|
# The
|
3
|
-
# [
|
4
|
-
# class provides a Ruby
|
3
|
+
# [LockFile](https://0x1eef.github.io/x/lockf.rb/LockFile.html)
|
4
|
+
# class provides a Ruby interface to
|
5
5
|
# [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3).
|
6
6
|
class LockFile
|
7
7
|
require "tmpdir"
|
8
8
|
require_relative "lockf.rb.so"
|
9
|
-
include Fcntl
|
10
9
|
|
11
10
|
##
|
12
11
|
# @!method self.lockf(fd, cmd, len)
|
@@ -80,7 +79,8 @@ class LockFile
|
|
80
79
|
end
|
81
80
|
|
82
81
|
##
|
83
|
-
# Acquire a lock (blocking)
|
82
|
+
# Acquire a lock (blocking).
|
83
|
+
#
|
84
84
|
# @raise [Errno::EBADF]
|
85
85
|
# @raise [Errno::EDEADLK]
|
86
86
|
# @raise [Errno::EINTR]
|
@@ -95,7 +95,8 @@ class LockFile
|
|
95
95
|
end
|
96
96
|
|
97
97
|
##
|
98
|
-
# Acquire a lock (non-blocking)
|
98
|
+
# Acquire a lock (non-blocking).
|
99
|
+
#
|
99
100
|
# @raise [Errno::EAGAIN]
|
100
101
|
# @raise [Errno::EBADF]
|
101
102
|
# @raise [Errno::ENOLCK]
|
@@ -106,7 +107,8 @@ class LockFile
|
|
106
107
|
end
|
107
108
|
|
108
109
|
##
|
109
|
-
# Release a lock
|
110
|
+
# Release a lock.
|
111
|
+
#
|
110
112
|
# @raise [Errno::EBADF]
|
111
113
|
# @raise [Errno::ENOLCK]
|
112
114
|
# @return [Integer]
|
data/lockf.rb.gemspec
CHANGED
@@ -10,15 +10,12 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.files = `git ls-files`.split($/)
|
11
11
|
gem.require_paths = ["lib"]
|
12
12
|
gem.extensions = %w[ext/lockf.rb/extconf.rb]
|
13
|
-
gem.summary = "
|
13
|
+
gem.summary = "Ruby bindings for lockf(3)"
|
14
14
|
gem.description = gem.summary
|
15
15
|
gem.add_development_dependency "yard", "~> 0.9"
|
16
|
-
gem.add_development_dependency "
|
17
|
-
gem.add_development_dependency "
|
18
|
-
gem.add_development_dependency "
|
19
|
-
gem.add_development_dependency "
|
20
|
-
gem.add_development_dependency "
|
21
|
-
gem.add_development_dependency "rack", "~> 3.0"
|
22
|
-
gem.add_development_dependency "rackup", "~> 2.1"
|
23
|
-
gem.add_development_dependency "test-cmd.rb", "~> 0.4"
|
16
|
+
gem.add_development_dependency "standard", "~> 1.12"
|
17
|
+
gem.add_development_dependency "rubocop", "~> 1.29"
|
18
|
+
gem.add_development_dependency "test-unit", "~> 3.5"
|
19
|
+
gem.add_development_dependency "rake-compiler", "~> 1.2"
|
20
|
+
gem.add_development_dependency "test-cmd.rb", "~> 0.6"
|
24
21
|
end
|
data/test/lock_file_test.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative "setup"
|
2
2
|
class LockFile::Test < Test::Unit::TestCase
|
3
|
-
|
4
|
-
include FileUtils
|
3
|
+
attr_reader :file
|
5
4
|
attr_reader :lockf
|
6
5
|
|
7
6
|
def setup
|
7
|
+
@file = Tempfile.new("lockf-test").tap(&:unlink)
|
8
8
|
@lockf = LockFile.new(file)
|
9
9
|
end
|
10
10
|
|
@@ -13,7 +13,7 @@ class LockFile::Test < Test::Unit::TestCase
|
|
13
13
|
end
|
14
14
|
|
15
15
|
##
|
16
|
-
#
|
16
|
+
# LockFile#lock
|
17
17
|
def test_lock
|
18
18
|
assert_equal 0, lockf.lock
|
19
19
|
ensure
|
@@ -21,19 +21,16 @@ class LockFile::Test < Test::Unit::TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_lock_in_fork
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
sleep(1)
|
28
|
-
}
|
29
|
-
rescue Interrupt
|
30
|
-
assert_raises(Timeout::Error) { timeout(0.5) { lockf.lock } }
|
24
|
+
pid = fork_sleep { lockf.lock }
|
25
|
+
sleep(0.1)
|
26
|
+
assert_raises(Errno::EWOULDBLOCK) { lockf.lock_nonblock }
|
31
27
|
ensure
|
28
|
+
Process.kill("KILL", pid)
|
32
29
|
lockf.release
|
33
30
|
end
|
34
31
|
|
35
32
|
##
|
36
|
-
#
|
33
|
+
# LockFile#lock_nonblock
|
37
34
|
def test_lock_nonblock
|
38
35
|
assert_equal 0, lockf.lock_nonblock
|
39
36
|
ensure
|
@@ -41,52 +38,41 @@ class LockFile::Test < Test::Unit::TestCase
|
|
41
38
|
end
|
42
39
|
|
43
40
|
def test_lock_nonblock_in_fork
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
sleep(1)
|
48
|
-
}
|
49
|
-
rescue Interrupt
|
50
|
-
assert_raises(Errno::EAGAIN) { lockf.lock_nonblock }
|
41
|
+
pid = fork_sleep { lockf.lock_nonblock }
|
42
|
+
sleep(0.1)
|
43
|
+
assert_raises(Errno::EWOULDBLOCK) { lockf.lock_nonblock }
|
51
44
|
ensure
|
45
|
+
Process.kill("KILL", pid)
|
52
46
|
lockf.release
|
53
47
|
end
|
54
48
|
|
55
49
|
##
|
56
|
-
#
|
50
|
+
# LockFile#locked?
|
57
51
|
def test_locked?
|
58
|
-
lockf.lock
|
59
|
-
|
60
|
-
assert_equal
|
52
|
+
pid = fork_sleep { lockf.lock }
|
53
|
+
sleep(0.1)
|
54
|
+
assert_equal true, lockf.locked?
|
61
55
|
ensure
|
56
|
+
Process.kill("KILL", pid)
|
62
57
|
lockf.release
|
63
58
|
end
|
64
59
|
|
65
60
|
##
|
66
|
-
# LockFile
|
67
|
-
def
|
68
|
-
|
69
|
-
touch(path)
|
70
|
-
lockf = LockFile.new(path)
|
61
|
+
# LockFile.temporary_file
|
62
|
+
def test_temporary_file
|
63
|
+
lockf = LockFile.temporary_file
|
71
64
|
assert_equal 0, lockf.lock
|
72
65
|
assert_equal 0, lockf.release
|
73
66
|
ensure
|
74
67
|
lockf.file.close
|
75
|
-
rm(path)
|
76
|
-
end
|
77
|
-
|
78
|
-
##
|
79
|
-
# LockFile.from_temporary_file
|
80
|
-
def test_from_temporary_file
|
81
|
-
lockf = LockFile.from_temporary_file
|
82
|
-
assert_equal 0, lockf.lock
|
83
|
-
assert_equal 0, lockf.release
|
84
|
-
lockf.file.close
|
85
68
|
end
|
86
69
|
|
87
70
|
private
|
88
71
|
|
89
|
-
def
|
90
|
-
|
72
|
+
def fork_sleep
|
73
|
+
fork do
|
74
|
+
yield
|
75
|
+
sleep
|
76
|
+
end
|
91
77
|
end
|
92
78
|
end
|
data/test/readme_test.rb
CHANGED
data/test/setup.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lockf.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- '0x1eef'
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|
@@ -25,118 +25,76 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: standard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.12'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: standard
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 1.12.1
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 1.12.1
|
40
|
+
version: '1.12'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rubocop
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.29.1
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.29.1
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: test-unit
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
45
|
- - "~>"
|
74
46
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
47
|
+
version: '1.29'
|
76
48
|
type: :development
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
52
|
- - "~>"
|
81
53
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake-compiler
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - '='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.2.0
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - '='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.2.0
|
54
|
+
version: '1.29'
|
97
55
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
56
|
+
name: test-unit
|
99
57
|
requirement: !ruby/object:Gem::Requirement
|
100
58
|
requirements:
|
101
59
|
- - "~>"
|
102
60
|
- !ruby/object:Gem::Version
|
103
|
-
version: '3.
|
61
|
+
version: '3.5'
|
104
62
|
type: :development
|
105
63
|
prerelease: false
|
106
64
|
version_requirements: !ruby/object:Gem::Requirement
|
107
65
|
requirements:
|
108
66
|
- - "~>"
|
109
67
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
68
|
+
version: '3.5'
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
70
|
+
name: rake-compiler
|
113
71
|
requirement: !ruby/object:Gem::Requirement
|
114
72
|
requirements:
|
115
73
|
- - "~>"
|
116
74
|
- !ruby/object:Gem::Version
|
117
|
-
version: '2
|
75
|
+
version: '1.2'
|
118
76
|
type: :development
|
119
77
|
prerelease: false
|
120
78
|
version_requirements: !ruby/object:Gem::Requirement
|
121
79
|
requirements:
|
122
80
|
- - "~>"
|
123
81
|
- !ruby/object:Gem::Version
|
124
|
-
version: '2
|
82
|
+
version: '1.2'
|
125
83
|
- !ruby/object:Gem::Dependency
|
126
84
|
name: test-cmd.rb
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
128
86
|
requirements:
|
129
87
|
- - "~>"
|
130
88
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0.
|
89
|
+
version: '0.6'
|
132
90
|
type: :development
|
133
91
|
prerelease: false
|
134
92
|
version_requirements: !ruby/object:Gem::Requirement
|
135
93
|
requirements:
|
136
94
|
- - "~>"
|
137
95
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0.
|
139
|
-
description:
|
96
|
+
version: '0.6'
|
97
|
+
description: Ruby bindings for lockf(3)
|
140
98
|
email:
|
141
99
|
- 0x1eef@protonmail.com
|
142
100
|
executables: []
|
@@ -145,6 +103,7 @@ extensions:
|
|
145
103
|
extra_rdoc_files: []
|
146
104
|
files:
|
147
105
|
- ".bundle/config"
|
106
|
+
- ".clang-format"
|
148
107
|
- ".github/workflows/tests.yml"
|
149
108
|
- ".gitignore"
|
150
109
|
- ".projectile"
|
@@ -157,7 +116,6 @@ files:
|
|
157
116
|
- Rakefile.rb
|
158
117
|
- ext/lockf.rb/extconf.rb
|
159
118
|
- ext/lockf.rb/lockf.c
|
160
|
-
- ext/lockf.rb/lockf.h
|
161
119
|
- lib/lockf.rb
|
162
120
|
- lib/lockf/version.rb
|
163
121
|
- lockf.rb.gemspec
|
@@ -190,5 +148,5 @@ requirements: []
|
|
190
148
|
rubygems_version: 3.5.3
|
191
149
|
signing_key:
|
192
150
|
specification_version: 4
|
193
|
-
summary:
|
151
|
+
summary: Ruby bindings for lockf(3)
|
194
152
|
test_files: []
|
data/ext/lockf.rb/lockf.h
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
void Init_lockf(void);
|