Working with TCP Sockets 読書メモ 第12章 DNSルックアップ

Working with TCP Sockets 読書メモ 目次

DNSルックアップ

  • DNSルックアップに伴う遅延はタイムアウトによる制御ができない

MRIとGIL

  • MRI(Matz Ruby Inprementation)にはGIL(Global Interpreter Lock)という仕組みがある
  • 潜在的に危険な処理をする際、あるスレッドがアクティブなら別のスレッドの動作をブロックする
  • ブロックするIOはGILのブロックの対象外
  • C拡張はIOであってもGILのブロック対象
  • RubyはDNSルックアップにC拡張を使っている!

resolv

  • resolvという標準ライブラリを使えばDNSルックアップを行うことができる
require 'resolv' # ライブラリ本体
require 'resolv-replace' # Socketがresolvを使うようにするモンキーパッチ
  • マルチスレッド環境でソケットプログラミングをする際は、このライブラリを使うようにすべき

ディスカッションに参加

1件のコメント

コメントを残す

コメントを残す