我正在查看控制檯上的error_logger消息,並將它們同時存儲在帶有error_logger_mf
的文件中。爲什麼控制檯上的error_logger消息與error_logger_mf文件的順序不同
如果我查看文件和控制檯,這些消息的順序完全不同。
時間戳都顯示相同的值,所以它的速度非常快,我明白,從不同的進程發送的消息可能會失序。
但我一直認爲,一旦達到error_logger,它們在發送到不同的事件處理程序時保持相同的順序。
我在文件中看到的內容(當我用rb
來看)時,事件以比控制檯上更爲理智的順序出現。
澄清:
很顯然,在來自不同進程的消息在error_logger到達的順序是不被採取太嚴重。
當我將磁盤日誌與屏幕日誌進行比較時,我不明白的是順序上的差異。
添加了一個答案作爲社區維基與我在下面的部分調查結果,請編輯,如果你知道額外的點。
這是一個同步競爭,以獨佔方式抓取IO控制檯。或者至少這是我的猜測。在那裏可能會出現一個產卵,這使得多個人想要訪問控制檯,因此這是誰先抓住IO鎖的問題。 – 2011-05-28 12:04:35
@IG:檢查錯誤記錄器處理程序到tty的路徑,找不到任何證據(請參閱下面的c.wiki)。 – 2011-05-28 16:36:53