Signed-off-by: Doug Nazar <nazard@xxxxxxxx> --- src/mt_misc.c | 17 +++++++++++++++++ tirpc/reentrant.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/mt_misc.c b/src/mt_misc.c index 5a49b78..020b55d 100644 --- a/src/mt_misc.c +++ b/src/mt_misc.c @@ -151,3 +151,20 @@ void tsd_key_delete(void) return; } +static pthread_t main_thread_id; + +__attribute__((constructor)) +static void +get_thread_id(void) +{ + /* This will only work if we're opened by the main thread. + * Shouldn't be a problem in practice since we expect to be + * linked against, not dlopen() from a random thread. + */ + main_thread_id = pthread_self(); +} + +int thr_main(void) +{ + return pthread_equal(main_thread_id, pthread_self()); +} diff --git a/tirpc/reentrant.h b/tirpc/reentrant.h index 5bb581a..ee65454 100644 --- a/tirpc/reentrant.h +++ b/tirpc/reentrant.h @@ -76,4 +76,5 @@ #define thr_self() pthread_self() #define thr_exit(x) pthread_exit(x) +extern int thr_main(void); #endif -- 2.26.2