http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=gdbm
以下スクリプトを複数プロセスで実行。
require 'gdbm' GDBM.open('dbfile') do |hash| for i in (10..20) hash[i.to_s] = (i * i).to_s sleep 10 end end
片方はエラー。
ex_gdbm.rb:3:in `open': ブロック不可のソケット操作をすぐに完了できませんでした。 - dbfile (Errno::EWOULDBLOCK)
GDBM自身の排他制御は非ブロック…っと。