prometheus-client-mmap 0.7.0.beta45.6 → 0.7.0.beta45.7
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/ext/fast_mmaped_file/mmap.c +12 -3
- data/ext/fast_mmaped_file/mmap.h +1 -0
- data/ext/fast_mmaped_file/value_access.c +7 -4
- data/lib/fast_mmaped_file.bundle +0 -0
- data/lib/prometheus/client/version.rb +1 -1
- 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: 7f9ed8e64e915588572b1eec01daf8cc1fe0b12f
|
4
|
+
data.tar.gz: 3ff520858018c2b87c5530b169b8c06d4ac3644e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51c868831e62e61ecd98f78f60f84e4e8e5e1c1662c0275fe54d49d632615431e39f76e9073baca0c78d4597e17d73a3c6f0efd9554bfcd93e3f0aada43b83da
|
7
|
+
data.tar.gz: dd9c23e607e733ba2eb60043e8b5a411cb8b5e0342b2349983fb51c9f65ff3cb4205b086bdbc8121aa618d77c7f52feb058ec5c965c224bac8d769aaf053b3a9
|
data/ext/fast_mmaped_file/mmap.c
CHANGED
@@ -119,6 +119,7 @@ static void mm_free(mm_ipc *i_mm) {
|
|
119
119
|
if (i_mm->t->path) {
|
120
120
|
if (munmap(i_mm->t->addr, i_mm->t->len) != 0) {
|
121
121
|
if (i_mm->t->path != (char *)-1 && i_mm->t->path != NULL) {
|
122
|
+
close(i_mm->t->fd);
|
122
123
|
free(i_mm->t->path);
|
123
124
|
}
|
124
125
|
free(i_mm);
|
@@ -133,6 +134,7 @@ static void mm_free(mm_ipc *i_mm) {
|
|
133
134
|
free(i_mm);
|
134
135
|
rb_raise(rb_eTypeError, "truncate");
|
135
136
|
}
|
137
|
+
close(i_mm->t->fd);
|
136
138
|
free(i_mm->t->path);
|
137
139
|
}
|
138
140
|
}
|
@@ -225,16 +227,19 @@ VALUE mm_init(VALUE obj, VALUE fname) {
|
|
225
227
|
size = i_mm->t->incr;
|
226
228
|
}
|
227
229
|
|
228
|
-
addr = mmap(0, size, pmode, vscope, fd, offset);
|
229
|
-
close(fd);
|
230
|
+
addr = mmap(0, size, pmode, vscope, fd, offset);
|
230
231
|
|
231
232
|
if (addr == MAP_FAILED || !addr) {
|
233
|
+
close(fd);
|
232
234
|
rb_raise(rb_eArgError, "mmap failed (%d)", errno);
|
233
235
|
}
|
234
236
|
|
237
|
+
i_mm->t->fd = fd;
|
235
238
|
i_mm->t->addr = addr;
|
236
239
|
i_mm->t->len = size;
|
237
|
-
if (!init)
|
240
|
+
if (!init) {
|
241
|
+
i_mm->t->real = size;
|
242
|
+
}
|
238
243
|
i_mm->t->pmode = pmode;
|
239
244
|
i_mm->t->vscope = vscope;
|
240
245
|
i_mm->t->smode = smode & ~O_TRUNC;
|
@@ -312,7 +317,9 @@ VALUE mm_unmap(VALUE obj) {
|
|
312
317
|
if (i_mm->t->path) {
|
313
318
|
if (munmap(i_mm->t->addr, i_mm->t->len) != 0) {
|
314
319
|
if (i_mm->t->path != (char *)-1 && i_mm->t->path != NULL) {
|
320
|
+
close(i_mm->t->fd);
|
315
321
|
free(i_mm->t->path);
|
322
|
+
i_mm->t->fd = -1;
|
316
323
|
i_mm->t->path = NULL;
|
317
324
|
}
|
318
325
|
|
@@ -324,8 +331,10 @@ VALUE mm_unmap(VALUE obj) {
|
|
324
331
|
truncate(i_mm->t->path, i_mm->t->real) == -1) {
|
325
332
|
rb_raise(rb_eTypeError, "truncate");
|
326
333
|
}
|
334
|
+
close(i_mm->t->fd);
|
327
335
|
free(i_mm->t->path);
|
328
336
|
}
|
337
|
+
i_mm->t->fd = -1;
|
329
338
|
i_mm->t->path = NULL;
|
330
339
|
}
|
331
340
|
return Qnil;
|
data/ext/fast_mmaped_file/mmap.h
CHANGED
@@ -39,6 +39,10 @@ static void expand(mm_ipc *i_mm, size_t len) {
|
|
39
39
|
rb_raise(rb_eArgError, "munmap failed");
|
40
40
|
}
|
41
41
|
|
42
|
+
if (i_mm->t->fd > 0 && close(i_mm->t->fd)){
|
43
|
+
rb_raise(rb_eArgError, "Closing mmaped fd failed with %d", errno);
|
44
|
+
}
|
45
|
+
|
42
46
|
int fd = open_and_extend_file(i_mm, len);
|
43
47
|
|
44
48
|
i_mm->t->addr = mmap(0, len, i_mm->t->pmode, i_mm->t->vscope, fd, i_mm->t->offset);
|
@@ -48,13 +52,12 @@ static void expand(mm_ipc *i_mm, size_t len) {
|
|
48
52
|
rb_raise(rb_eArgError, "mmap failed");
|
49
53
|
}
|
50
54
|
|
51
|
-
if (close(fd) == -1) {
|
52
|
-
rb_raise(rb_eArgError, "Can't close %s", i_mm->t->path);
|
53
|
-
}
|
54
|
-
|
55
55
|
if ((i_mm->t->flag & MM_LOCK) && mlock(i_mm->t->addr, len) == -1) {
|
56
|
+
close(fd);
|
56
57
|
rb_raise(rb_eArgError, "mlock(%d)", errno);
|
57
58
|
}
|
59
|
+
|
60
|
+
i_mm->t->fd = fd;
|
58
61
|
i_mm->t->len = len;
|
59
62
|
i_mm->t->real = len;
|
60
63
|
}
|
data/lib/fast_mmaped_file.bundle
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prometheus-client-mmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.0.beta45.
|
4
|
+
version: 0.7.0.beta45.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Schmidt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fuzzbert
|