Для реализаций ruby 1.8 и ruy 1.9 на основе C, является ли File#print атомарным, когда ему дается несколько аргументов?
File#print
Эмпирически изучая ответ, нет.
10.times do Thread.new do print "foo", "\n" end end
дает (в ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0])
foofoofoo foo foo foo foo foo foo foo
Не знаю, где можно посмотреть, что атомно, а что нет.