The use of #elif rather than #else in this code
+ #if CPU_TIME_IS_THREAD_LOCAL == YES + OBJ2THREAD(Pike_interpreter.thread_id)->auto_gc_time += last_gc_time; + #elif CPU_TIME_IS_THREAD_LOCAL == NO + auto_gc_time += last_gc_time; + #endif
seems to suggest that setting CPU_TIME_IS_THREAD_LOCAL to something other than `YES' or `NO' is valid, and results in no gc time accounting at all. Is that correct? In that case I suspect grubba's fix for the no-treads case is incomplete. If not, why are there two tests here?