I think you'd better remove all of them because I would guess that pthread_rwlock_init() could allocate memory which is then never freed.  Actually it might make sense to have a whole separate branch of the mutex code for emscripten -- i.e. in addition to the KJ_USE_FUTEX vs. pthread branches.  Maybe it could be enabled by defining KJ_NO_LOCKS or something (which would be automatic if EMSCRIPTEN) -- this would be useful for people who want to compile single-threaded stuff for maximum efficiency.  Or just leave it like this and I can fix it up, I guess.