I am trying to get the total time a particular thread spent so far programatically.

`getrusage` returns a thread's CPU time but I want the *total* time i.e. including the time spent by the thread being blocked for whatever reason.

Please note that I will be making use of this functionality by instrumenting a given program using a profiler that I wrote.

A program may have many threads (I am focusing on profiling servers so there can be many). At any given time I would want to know how much time a particular thread spent (so far). So its not convenient to start a timer for every thread as they are spawned. So I would want something of usage similar to `getrusage` e.g. it returns the total time of the current thread or maybe I can pass to it a thread id. So manual mechanisms like taking a timestamp when the thread was spawned and one later then taking their difference won't be very helpful for me.

Can anyone suggest how to do this?

Thanks!