zack fertig

This commit is contained in:
Eggert Jung
2025-05-13 17:44:58 +02:00
parent f1e5f17d1f
commit 901eb0bbf5
2 changed files with 6 additions and 8 deletions

View File

@@ -1,12 +1,12 @@
#include "sync/ticketlock.h"
void Ticketlock::lock() {
uint64_t ticket = __atomic_fetch_add(&ticket_count, 1, __ATOMIC_SEQ_CST);
while (ticket != ticket_current) {
uint64_t ticket = __atomic_fetch_add(&ticket_count, 1, __ATOMIC_RELAXED);
while (ticket != __atomic_fetch_add(&ticket_current, 0, __ATOMIC_ACQUIRE))) {
Core::pause();
}
}
void Ticketlock::unlock() {
__atomic_fetch_add(&ticket_current, 1, __ATOMIC_SEQ_CST);
__atomic_fetch_add(&ticket_current, 1, __ATOMIC_RELEASE);
}