diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-01-11 11:14:28 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-01-11 11:39:10 +0900 |
commit | f6e2c41db30cc3d46053de70dbfe87a5db24d58d (patch) | |
tree | b882bcc2163e91e3efde1a919737515891a5b303 /ext/etc/etc.c | |
parent | d8c8b79d24bf0f3177535501ad9b801e552fb2ad (diff) |
[ruby/etc] Check blocking variables at release
https://github.com/ruby/etc/commit/f017bdfedf
Diffstat (limited to 'ext/etc/etc.c')
-rw-r--r-- | ext/etc/etc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 477423c9ed..44273ff9ad 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -253,7 +253,9 @@ static VALUE passwd_ensure(VALUE _) { endpwent(); - passwd_blocking = 0; + if (RUBY_ATOMIC_EXCHANGE(passwd_blocking, 0) != 1) { + rb_raise(rb_eRuntimeError, "unexpected passwd_blocking"); + } return Qnil; } @@ -495,7 +497,9 @@ static VALUE group_ensure(VALUE _) { endgrent(); - group_blocking = 0; + if (RUBY_ATOMIC_EXCHANGE(group_blocking, 0) != 1) { + rb_raise(rb_eRuntimeError, "unexpected group_blocking"); + } return Qnil; } |