When using "void thread_id(DbEnv* dbenv, pid_t* pid, db_threadid_t* tid)" callback supply the native thread id to the "db_threadid_t* tid", "int is_alive(DbEnv* dbenv, pid_t pid, db_threadid_t tid, u_int32_t flags)" callback can get the native thread id in tid, however, tid in "char* thread_id_string(DbEnv* dbenv, pid_t pid, db_threadid_t tid, char* buf)" always use the pthread_self() value, see DBD source code /src/os/os_pid.c, line 51. Is that right?
I'm using db-6.0.20 on debian 7.0.
Thanks for reporting this. We've created an internal ticket to check all the thread_id function use in our code, and we will get back to you later.
Winter, Oracle Berkeley DB