On macOS, fts supports per-thread version of chdir(), even though it's undocumented!
Set the FTS_USE_THREAD_FCHDIR environment variable, and fts will internally use pthread_fchdir_np() instead of fchdir().
This allows different threads in your process to have different current directories.