thread vs. process zählervariable
- 
					
					
					
					
 Hallo Ich habe hier folgenden Code: struct Toilet* new_Toilet(struct Cloakroom* cloakroom, unsigned int counter) { struct Toilet* this = malloc(sizeof(struct Toilet)); printf("Created Toilet %u\n", counter); this->cloakroom_ = cloakroom; this->number_ = counter; this->usage_counter_ = 0; this->max_usage_counter_ = 5; this->locked_by_ = 0; return this; }sowie in der gleichen Datei unteranderm: int Toilet_isDirty(struct Toilet* this, struct Process* process) { assert(this->locked_by_ == process); if (this->usage_counter_ >= this->max_usage_counter_) return 1; return 0; }So nun zu meinem Problem: Arbeite ich mit Theards statt Prozessen funktioniert alles super. Die isDirty wird von einer anderen C Datei aufgerufen und die gewünschten Prameter werden übergeben. Alles wird korrekt mitgezählt und ausgeführt. In dieser Funktion wird usage_counter hochgezählt: void Toilet_use(struct Toilet* this, struct Customer* customer) { assert(this->locked_by_ == customer); printf("%s uses toilet %u.\n", customer->name_, this->number_); usleep(100*1000); ++this->usage_counter_; }Auch bei den Prozessen wird alles aufgerufen usw.. Nur habe ich jetzt das Problem, dass die usage_counter nicht korrekt erhöht wird. In der isDirty ist der Wert der Variable immer 0. Was mache ich da flasch? lg 
 
- 
					
					
					
					
 Wie genau "arbeitest" du mit "Prozessen"!? 
 
- 
					
					
					
					
 Die Process schaut so aus: void Process_start(void (*function)(void*), void* this) { int pid = fork(); if(pid != 0) { function(this); } } 
 
