summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/openssl/ossl_config.c2
-rw-r--r--test/openssl/test_config.rb9
2 files changed, 10 insertions, 1 deletions
diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c
index 3b387239ab..ee2ff6786f 100644
--- a/ext/openssl/ossl_config.c
+++ b/ext/openssl/ossl_config.c
@@ -22,7 +22,7 @@ static const rb_data_type_t ossl_config_type = {
{
0, nconf_free,
},
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE,
};
CONF *
diff --git a/test/openssl/test_config.rb b/test/openssl/test_config.rb
index f165ca4934..759a5bbd44 100644
--- a/test/openssl/test_config.rb
+++ b/test/openssl/test_config.rb
@@ -277,6 +277,15 @@ __EOC__
assert_equal(@it.sections.sort, c2.sections.sort)
end
+ if respond_to?(:ractor)
+ ractor
+ def test_ractor
+ assert(Ractor.shareable?(@it))
+ assert(Ractor.shareable?(OpenSSL::Config.parse("[empty]\n")))
+ assert(Ractor.shareable?(OpenSSL::Config::DEFAULT_CONFIG_FILE))
+ end
+ end
+
private
def in_tmpdir(*args)