mktime のマニュアル ページでは、mktime のスレッド セーフについては言及されていませんでしたが、これについては言及されていたため、スレッドが安全ではないように見えました。
mktime() を呼び出すと、外部変数 tzname に現在のタイム ゾーンに関する情報も設定されます。
Linux では、mktime が tzset を呼び出して、char*[] である tzname を設定することを知っています。
extern char *tzname[2];
tzset は、環境変数 TZ とファイル /etc/localtime を読み取ります。したがって、mktime がこれらすべての操作を保護するためにミューテックスを使用しない限り、どのようにスレッド セーフにできるかわかりません。