Issue 912943: 7.5.6 Thread Objects is too vague (original) (raw)
Some items which could be improved....
"Once the thread's activity is started, the thread is considered 'alive' and 'active' (these concepts are almost, but not quite exactly, the same; their definition is intentionally somewhat vague)."
This is a bit silly. Either these attributes are intended to be exposed to users or they're not. If they are, they should be well defined. If not, they shouldn't be mentioned at all.
"If the subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.init()) before doing anything else to the thread."
This is misleading. You need to call "Thread.init (self)", i.e. pass along the self argument. At least I think you do :-)
"join([timeout]) ... When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof)."
What happens if you pass None? Does it wait forever? Is this any different from not passing any argument at all? What happens if a timeout occurs? Is there any way to differentiate between a timeout and a normal return?
"A thread can be join()ed many times."
Presumably only if all but the last call timed out? Or maybe not?
If you get a normal return (i.e. not a timeout) from join(), and
then call join() again, what happens? Does it just return
immediately with no error?