aboutsummaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/etc/etc.c8
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;
}