From: Charles Oliver Nutter Date: 2008-10-11T07:19:00+09:00 Subject: Re: Thread: super should be first line or last line? christoforever@gmail.com wrote: > While playing around with ruby threads I noticed that if you dont call > super when subclassing a thread you will get an initialization error. > So ok we throw a super in the initialize method and that clears things > up. Unfortunately if you put super as the first line in the initialize > method the rest of the initialize will not execute but the block which > is part of the initial thread creation gets initialized. However if > you put super as the last statement in the initialize method, the > whole initialize gets executed and then the block from the thread > creation gets executed. Does anyone else find this a bit funny? And > what is a good practice when subclassing thread... to put super first > or last statement in the initialize method? and is there any benefit > for either? I'll echo others' concerns about why you're doing this, but if the initialize chain causes you headaches you could always redefine new for your class: class MyThread < Thread def self.new(arg1, arg2) super { Thread.current[:arg1] = arg1 Thread.current[:arg2] = arg2 yield } } } It would probably be better put in a separate data structure that spins up a Thread internally though. - Charlie