助田です。

On Thu, Feb 16, 2017 at 05:35:46PM +0900, yamataka / u08.itscom.net wrote:
> In main thread
> In ssdp thread
> ./thread.rb:12:in `block in <main>': undefined method `stop' for #<
> Thread:0x00000600486ec0@./thread.rb:5 dead> (NoMethodError)
>         from ./thread.rb:9:in `loop'
>         from ./thread.rb:9:in `<main>'
> 
> 実行すると、stopメソッドが無いとの事でエラーになってしまいます。
> https://docs.ruby-lang.org/ja/2.2.0/class/Thread.html
> を参照すると、stop メソッドがある様なのですが…
> 
> pp ssdp.methods で method を出力させてみましたが、stop method が有りませ
> ん。
> 何か勘違いをしているか、ご教示お願いできますでしょうか?
> 

Thread の特異メソッドとインスタンスメソッドを混同されている
と思います。

参照先のドキュメントを確認すれば、 目次の
「特異メソッド」の欄に stop があり
「インスタンスメソッド」の欄には、stop がない
ことがわかると思います。

  Thread.stop

というコードであれば Thread クラスの
特異メソッドである stop を実行しようとします。
この場合は、エラーになりません。

一方、ssdp は Thread クラスのインスタンスであるため、

  ssdp.stop

というコードだと Thread クラスのインスタンスメソッド stop を
実行しようとすることになります。
ですが、Thread にはインスタンスメソッドの stop が存在しない
ためエラーになります。

  助田