/
gc.rb
53 lines (42 loc) · 874 Bytes
/
gc.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- encoding: us-ascii -*-
module GC
def self.start
run(false)
end
def self.run(force)
Rubinius.primitive :vm_gc_start
raise PrimitiveFailure, "GC.run primitive failed"
end
# Totally fake.
def self.stress
@stress_level ||= false
end
# Totally fake.
def self.stress=(flag)
@stress_level = !!flag
end
# Totally fake.
@enabled = true
def self.enable
# We don't support disable, so sure! enabled!
ret = !@enabled
@enabled = true
return ret
end
# Totally fake.
def self.disable
# Treat this like a request that we don't honor.
ret = !@enabled
@enabled = false
return ret
end
def garbage_collect
GC.start
end
end
module ObjectSpace
def self.find_object(query, callable)
Rubinius.primitive :vm_find_object
raise PrimitiveFailure, "vm_each_object failed"
end
end