Module: JemallocCtl

Defined in:
lib/jemalloc_ctl.rb,
ext/jemalloc_ctl/jemalloc_ctl.c

Class Method Summary collapse

Class Method Details

.disable_background_threadObject



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'ext/jemalloc_ctl/jemalloc_ctl.c', line 65

static VALUE rb_jemalloc_ctl_disable_background_thread(VALUE self)
{
    if (my_mallctl == NULL)
        rb_raise(rb_eRuntimeError, "jemalloc is not available");

    bool val = false;
    int err = my_mallctl("background_thread", NULL, NULL, &val, sizeof(bool));

    if (err != 0)
        rb_raise(rb_eRuntimeError, "mallctl(\"background_thread\") failed with error %d", err);

    return Qfalse;
}

.enable_background_threadObject



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'ext/jemalloc_ctl/jemalloc_ctl.c', line 51

static VALUE rb_jemalloc_ctl_enable_background_thread(VALUE self)
{
    if (my_mallctl == NULL)
        rb_raise(rb_eRuntimeError, "jemalloc is not available");

    bool val = true;
    int err = my_mallctl("background_thread", NULL, NULL, &val, sizeof(bool));

    if (err != 0)
        rb_raise(rb_eRuntimeError, "mallctl(\"background_thread\") failed with error %d", err);

    return Qtrue;
}

.enabled?Boolean

Returns:

  • (Boolean)


31
32
33
34
# File 'ext/jemalloc_ctl/jemalloc_ctl.c', line 31

static VALUE rb_jemalloc_ctl_enabled_p(VALUE self)
{
    return my_mallctl != NULL ? Qtrue : Qfalse;
}

.versionObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'ext/jemalloc_ctl/jemalloc_ctl.c', line 36

static VALUE rb_jemalloc_ctl_version(VALUE self)
{
    if (my_mallctl == NULL)
        rb_raise(rb_eRuntimeError, "jemalloc is not available");

    const char *version;
    size_t sz = sizeof(version);
    int err = my_mallctl("version", &version, &sz, NULL, 0);

    if (err != 0)
        rb_raise(rb_eRuntimeError, "mallctl(\"version\") failed with error %d", err);

    return rb_str_new_cstr(version);
}