warn and puts should be atomic
Since we added use of writev in r44618, we should make warn/puts atomic.
It would make development of multiprocess/multithreaded processes easier,
I think it was intended to be atomic based on old comments in io.c:
- /* - * xxx: use writev to avoid double write if available - * writev may help avoid context switch between "a" and "\n" in - * STDERR.puts "a" [ruby-dev:25080] (rebroken since native threads - * introduced in 1.9) - */