Ruby mogilefs-client dev/users discussion/patches/bugs/help/...
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] mogilefs-client 3.10.0 - MogileFS client library for Ruby
@ 2016-08-31  7:43  5% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-08-31  7:43 UTC (permalink / raw)
  To: ruby-talk, mogile; +Cc: mogilefs-client-public

A MogileFS client library for Ruby.  MogileFS is an open source
distributed filesystem, see: http://mogilefs.org for more details.  This
library allows any Ruby application to read, write and delete files in a
MogileFS instance.

Changes:

    Ruby mogilefs-client 3.10.0

    A bunch of minor tweaks to reduce garbage and exceptions.

    In addition to the existing :timeout and :fail_timeout options,
    there is a new :connect_timeout directive for all connection
    classes which only controls the time spent waiting for a TCP
    connection.  This defaults to the same value as the existing
    :timeout option (3 seconds); but users are advised to lower
    it to match ideal network conditions.

    For users of Ruby 2.3+, this release takes advantage of
    exception-less Socket#connect_nonblock using "exception: false".
    Users of Ruby 2.1+ will also benefit from "exception: false"
    usage for read_nonblock and write_nonblock calls.
    kgio is no longer be useful with this release with Ruby 2.3+

    This release also fixes a Ruby 1.8.7 compatibility bug for
    non-kgio users.  However, this may be the last 1.8.7-compatible
    release.  Fwiw, I wanted to remove Ruby 1.8 support around 5
    years ago but several users were against it.   Maybe nobody will
    complain, this time...

    18 changes since 3.9.0:

          doc: avoid inadvertantly documenting the Process class
          admin: simplify utilization conversion
          more idiomatic comparisons with constants
          bigfile/filter: only update MD5 if non-nil
          bigfile: lazily require bigfile/filter
          backend: simplify regexp
          .olddoc.yml: add NNTP and mailing list archive URL
          minor garbage reductions for newer Rubies
          socket/pure_ruby: fix Ruby 1.8 compatibility
          socket/pure_ruby: use `:exception=>false' on Ruby 2.1+
          test_fresh: do not delete non-existent domain
          admin: map unset reject_bad_md5 field to nil
          socket/pure_ruby: connect with "exception:false" on Ruby 2.3+
          implement :connect_timeout option
          add .gitattributes for Ruby method detection
          README: stop mentioning cgit
          connect_timeout: match :timeout if unset
          pkg.mk: use --local option for gem installation

rdoc :: http://bogomips.org/mogilefs-client/
list :: mogilefs-client-public@bogomips.org
list-cc :: mogile@googlegroups.com
list-archive :: http://bogomips.org/mogilefs-client-public/
git clone git://bogomips.org/mogilefs-client.git
nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.ruby

^ permalink raw reply	[relevance 5%]

* [PATCH] socket/pure_ruby: fix Ruby 1.8 compatibility
@ 2015-11-04 21:43  7% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-11-04 21:43 UTC (permalink / raw)
  To: mogilefs-client-public

For non-kgio users, IO#wait_readable did not appear until Ruby 2.0.
Additionally, optimistically perform reads before waiting because
EOF handling behavior differs in current revisions of Ruby 2.3.0dev.
---
 lib/mogilefs/socket/pure_ruby.rb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/mogilefs/socket/pure_ruby.rb b/lib/mogilefs/socket/pure_ruby.rb
index 7530a40..e74bbef 100644
--- a/lib/mogilefs/socket/pure_ruby.rb
+++ b/lib/mogilefs/socket/pure_ruby.rb
@@ -23,15 +23,15 @@ class MogileFS::Socket < Socket
     sock
   end
 
-  def wait_writable(timeout)
+  def wait_writable(timeout = nil)
     IO.select(nil, [ self ], nil, timeout)
   end unless self.instance_methods.include?(:wait_writable) # Ruby <2.0.0
 
   def timed_read(len, dst = "", timeout = 5)
     begin
-      wait_readable(timeout) or unreadable_socket!(timeout)
       return read_nonblock(len, dst)
     rescue Errno::EAGAIN
+      wait(timeout) or unreadable_socket!(timeout)
     rescue EOFError
       return
     end while true
@@ -39,10 +39,10 @@ class MogileFS::Socket < Socket
 
   def timed_peek(len, dst, timeout = 5)
     begin
-      wait_readable(timeout) or unreadable_socket!(timeout)
       rc = recv_nonblock(len, Socket::MSG_PEEK)
       return rc.empty? ? nil : dst.replace(rc)
     rescue Errno::EAGAIN
+      wait(timeout) or unreadable_socket!(timeout)
     rescue EOFError
       dst.replace("")
       return
-- 
EW


^ permalink raw reply related	[relevance 7%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2015-11-04 21:43  7% [PATCH] socket/pure_ruby: fix Ruby 1.8 compatibility Eric Wong
2016-08-31  7:43  5% [ANN] mogilefs-client 3.10.0 - MogileFS client library for Ruby Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/mogilefs-client.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).