On 01/23, Brandon Williams wrote: > As we discussed off-line I'll also do the rework to break up the > question and result. That way two threads can be executing using the > same attr_check structure. Thinking about this I don't really see what we would gain by breaking them up. Right now most callers have a static attr_check struct which holds the question and answer (and in my series a buffer of all_attrs used during the collection process). If this struct is broken up into question and answer then the only part of it that can be shared with multiple threads is the question, which ends up being an array with 2 maybe 3 entries on average. The result and the array of all_attrs would then need to be allocated each time calling into the attribute system since they can't be shared. Since this allocation is already going to happen wouldn't it just make sense to drop the static modifier on the check structure (or have a per-thread check structure) if you really wanted a particular function thread safe? It seems like breaking the question and answer up doesn't buy you much in terms of reducing allocation churn and instead complicates the API with needing to keep track of two structures instead of a one. -- Brandon Williams