summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-10-17 18:14:05 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-10-17 18:14:05 +0000
commit1b2d3f81ee00c3fc5f002aaf7a646ed08e605610 (patch)
treee0a3a8afd1fbda407b8e36749d4f84f7e1942c0a /file.c
parentd51bcd20071f6f61bce0364c81fb48e2c5b7d224 (diff)
1.6.2 (to be)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r--file.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/file.c b/file.c
index 3e0ff4c8fa..737ed5d88e 100644
--- a/file.c
+++ b/file.c
@@ -1530,6 +1530,7 @@ rb_file_flock(obj, operation)
{
#ifndef __CHECKER__
OpenFile *fptr;
+ int ret;
rb_secure(2);
GetOpenFile(obj, fptr);
@@ -1537,7 +1538,10 @@ rb_file_flock(obj, operation)
if (fptr->mode & FMODE_WRITABLE) {
fflush(GetWriteFile(fptr));
}
- if (flock(fileno(fptr->f), NUM2INT(operation)) < 0) {
+ TRAP_BEG;
+ ret = flock(fileno(fptr->f), NUM2INT(operation));
+ TRAP_END;
+ if (ret < 0) {
#ifdef EWOULDBLOCK
if (errno == EWOULDBLOCK) {
return Qfalse;