Skip to content

Commit 7908acd

Browse files
committed
Don't include MFiles in coredumps
1 parent 5e3f3ab commit 7908acd

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/lavinmq/mfile.cr

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ class MFile < IO
8888
ptr = LibC.mmap(nil, length, protection, flags, @fd, 0)
8989
raise RuntimeError.from_errno("mmap") if ptr == LibC::MAP_FAILED
9090
addr = ptr.as(UInt8*)
91-
advise(MFile::Advice::Sequential, addr, 0, length) unless @writeonly
91+
advise(Advice::DontDump, addr, 0, length)
92+
advise(Advice::Sequential, addr, 0, length) unless @writeonly
9293
addr
9394
end
9495

@@ -262,12 +263,17 @@ class MFile < IO
262263
end
263264
end
264265

265-
enum Advice
266-
Normal
267-
Random
268-
Sequential
269-
WillNeed
270-
DontNeed
266+
enum Advice : LibC::Int
267+
Normal = 0
268+
Random = 1
269+
Sequential = 2
270+
WillNeed = 3
271+
DontNeed = 4
272+
{% if flag?(:linux) %}
273+
DontDump = 16
274+
{% else %}
275+
DontDump = 8 # is called NoCore in BSD/Darwin
276+
{% end %}
271277
end
272278

273279
def resize(new_size : Int) : Nil

0 commit comments

Comments
 (0)