Please sign in to comment.
Make RingBuffer::WriterFlush() only flush data not sync it.
The reason we do syncs of the data is so that Linux doesn't build up too many bufferred writes and freeze up the system later on writing many GB to disk at once. However the amount of data typically flushed in this call is not going to greatly increase the amount of data that will need to be handled on the next fsync and this sync is causing DTVRecorder::SetNextRecording() to take several seconds, hence delaying TVRec::SwitchRecordingRingBuffer() and TVRec::StartRecording(). Since TVRec::StartRecording() blocks the scheduler this can mean recording on other recorders is delayed by several seconds for each other recorder starting a recording at the same time.
- Loading branch information...