Disable auto compaction on platforms that do not support it

This commit is contained in:
Peter Zhu 2021-02-23 16:29:53 -05:00 коммит произвёл Aaron Patterson
Родитель 1e13548953
Коммит 1c0e79e87b
1 изменённых файлов: 7 добавлений и 0 удалений

7
gc.c
Просмотреть файл

@ -9986,6 +9986,13 @@ gc_set_auto_compact(rb_execution_context_t *ec, VALUE _, VALUE v)
rb_raise(rb_eNotImpError, "Automatic compaction isn't available on this platform");
}
#endif
/* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for
* the read barrier, so we must disable automatic compaction. */
#if !defined(__MINGW32__) && !defined(_WIN32) && !defined(HAVE_MMAP)
rb_raise(rb_eNotImpError, "Automatic compaction isn't available on this platform");
#endif
ruby_enable_autocompact = RTEST(v);
return v;
}