Grahamfff wrote:
They are recoverery data files,
Now, finally, you are providing some useful info. First off, the file system is a bottleneck. The only way to speed up file access is use a different file system. But you probably don't have that choice. Second, repeatedly writing to hard disk in a fixed time loop every 20ms is an incredibly stupid idea, for various reasons - this is simply not the intended purpose of a file system! You should consider different storage media, depending an what is available to you, or you should consider to just wait longer between writes. I'm not an expert on this, but Flash drives, SRAM, or even USB may be more suitable. (Although writing to flash drives 50 times per second is a sure way to destroy them in short order...) Third, I can't think of any reason to write recovery info more often then once every couple of seconds: a recovery feature usually means the ability to restore a state that is difficult to reproduce, either because it is the result of interacting with a non-deterministic system (such as a human), or because there is no other way to reproduce the data (e. g. in very long range communication such as talking to mars rovers and the like). Either way, losing the data from as little a timespan as one second is meaningless! OTOH, if for whatever incomprehensible reason you really, really need that info stored every 0.02s flawlessly, then the file system simply is too slow to reliably do this - not to mention that trying it will slow your entire application to a crawl. As suggested above, use a different storage medium!
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)