Dateien zwischen Threads synchronisierenC++

Programme in C++. Entwicklerforum
Anonymous
 Dateien zwischen Threads synchronisieren

Post by Anonymous »

Angenommen, 2 Threads, t1 und t2, Mutex m und Datei f laufen auf einem RPi.
t1 wartet bei m, erstellt eine Datei f mit etwas Inhalt, schließt f und überprüft, ob f existiert. Schließlich wird m freigegeben und t1 verzögert kurz, um t2 laufen zu lassen.
t2 wartet bei m. Wenn f existiert, wird f entfernt. Wenn f nicht existiert, wird eine Fehlermeldung ausgegeben. Schließlich wird m losgelassen und t2 verzögert kurz, um t1 laufen zu lassen.
Wiederholen Sie dies 10.000 Mal. Das Seltsame ist, dass t2 hin und wieder meldet, dass f nicht existiert, während t1 gleichzeitig überprüft, ob f existiert.
Es sieht also so aus, als ob die Datei nicht immer tief genug in das Dateisystem geschrieben wird, um für andere Threads verfügbar zu sein.
Gibt es eine Möglichkeit, sicherzustellen, dass dies wirklich passiert?

Code: Select all

#include 
#include 
#include 
#include 
#include 
#include 

#define COUNT 10000

std::string path = "/mnt/data/tmp/test.txt";

std::mutex mtx;
bool file_exists;

void create_file()
{
std::cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post