If another "constructor" was called before this one, and that other constructor used time or filesystem functions, ftlp_init would be initialized by that other constructor, and then reinitialized by the ftpl_init constructor. At that point, confusion ensues.
One callsite of
ftpl_init
wasn't protected by theif (!initialized)
condition, specifically the "constructor" call:If another "constructor" was called before this one, and that other constructor used time or filesystem functions, ftlp_init would be initialized by that other constructor, and then reinitialized by the ftpl_init constructor. At that point, confusion ensues.