pthread_self() on x86 accesses a register on CPU, so it is quite fast (i.e. no syscall).
john On Thu, May 23, 2013 at 11:22 PM, Yunkai Zhang <yunkai...@gmail.com> wrote: > Oh, I read the implementation of pthread_self() in glibc just now, It's > simple then I guessed, > > It seems an overkill optimization. I think we should drop this wrapper. > > > On Fri, May 24, 2013 at 2:14 PM, Yunkai Zhang <yunkai...@gmail.com> wrote: > > > > > > > > > On Fri, May 24, 2013 at 1:41 AM, James Peach <jpe...@apache.org> wrote: > > > >> Hi Yunkai, > >> > >> I'm looking at the reclaimable freelist code, and this jumped out at me: > >> > >> static inline pthread_t thread_id(void) > >> { > >> static __thread pthread_t tid; > >> > >> return tid?tid:(tid = pthread_self()); > >> } > >> > >> Why does this need to cache the thread ID in thread local storage? > >> > > > > Getting thread id is a very frequent operation in reclaimabe-freelist, > but > > pthread_selft() isn't a inline function, I wanted to cache it so that we > > can reduce one function calling. > > > > > > > >> > >> J > >> > > > > > > > > -- > > Yunkai Zhang > > Work at Taobao > > > > > > -- > Yunkai Zhang > Work at Taobao >