aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-05 08:53:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-05 08:53:08 +0000
commit12551ae5732e83e8ba77cf68c3501529d608c282 (patch)
tree46f75a96abf7fe74cbbaa1db098ba2a884a18769
parent08631278ada7a6fd2bafb3ab0f0447b1f6d58790 (diff)
downloadruby-12551ae5732e83e8ba77cf68c3501529d608c282.tar.gz
* file.c (rb_file_flock): returns false on EAGAIN if non-blocking.
[ruby-core:15795] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--file.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fbe8b29e5c..05a320f3b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Mar 5 17:53:01 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (rb_file_flock): returns false on EAGAIN if non-blocking.
+ [ruby-core:15795]
+
Web Mar 5 17:43:43 2008 Martin Duerst <duerst@it.aoyama.ac.jp>
* transcode.c (transcode_loop): Adjusted detection of invalid
diff --git a/file.c b/file.c
index e7089d88aa..c32afbc103 100644
--- a/file.c
+++ b/file.c
@@ -3273,7 +3273,7 @@ rb_file_flock(VALUE obj, VALUE operation)
#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
case EWOULDBLOCK:
#endif
- if (op1 & LOCK_NB) goto exit;
+ if (op1 & LOCK_NB) return Qfalse;
rb_thread_polling();
rb_io_check_closed(fptr);
continue;
@@ -3288,7 +3288,6 @@ rb_file_flock(VALUE obj, VALUE operation)
rb_sys_fail(fptr->path);
}
}
- exit:
#endif
return INT2FIX(0);
}