POSIX standardによれば、パイプへの書き込みはアトミック(データサイズがPIPE_BUF未満の場合)になることが保証されています。POSIXパイプ書き込みのアトミック性の意味
私が理解する限り、これは、パイプに書き込もうとしているスレッドは、別のスレッドの書き込み途中でパイプにアクセスすることはないということです。私には分かりませんが、これがどのように達成され、この原子性の保証が他の意味を持つかどうかです。
これは、書き込みスレッドが書き込み関数内のどこかでロックを取得したことを意味しますか?
パイプへの書き込みスレッドは、書き込み操作中にコンテキストからスケジューリングされないことが保証されていますか?
あなたの推論はどれも標準で保証されていないので、それを何とかしてください。あなたが知っていることは、あなたの書き込みが他の書き込みとインターリーブされないことです。これを行うためのロックを取得するかどうかは実装の詳細なので、標準によって何らかのスケジューリングの保証はできません。唯一のことは、あなたのスレッドが書き込み保留中であれば、他のスレッドがパイプに書き込むことができないということです。write()が呼び出されてから返されるまでの間にスケジューラとスレッドの間で何が起こったのですかあなたのビジネスの:) – iluvcapra