Cliff Woolley wrote:

On Sat, 25 Aug 2001, Ryan Bloom wrote:

[...]

(Assume for the purposes of this paragraph that we ARE going to use SMS.)
It was debated whether the SMS to be used should be looked up by the
buckets code itself or whether it should be passed in by the caller.
Passing it in by the caller is what eventually came out seeming the best
because otherwise the buckets code (which has no way to know what its
thread ID is) has to go ask the OS for its thread ID and then look up the
SMS in a hash table or something based on that ID.  If the caller gives it
to us, the caller (which DOES know the thread ID at some point) can just
stash a pointer to that thread's SMS somewhere and pass it in to the
bucket functions and it's constant time instead of pseudo-constant or
logarithmic or linear or whatever.  On the other hand, now that I'm
actually implementing that as phase 2, I sort of dislike how cluttered it
makes the API seem.  So we could take a fork in the road from here and
leave it up to the buckets to find their thread ID.  Less performant, but
not terribly bad.  Probably still better than malloc, though the win is
less clear.  Or we could keep going.

IMHO, it's better to pass the SMS through the API than to force the
bucket code to look it up via the thread ID, because looking up the
thread ID isn't necessarily a cheap operation (it may require a system
call on some platforms).

--Brian




Reply via email to