From 03ad55130b4f0047eb64d3cc9947b98f0130623e Mon Sep 17 00:00:00 2001 From: Christian Krinitsin Date: Sun, 23 Mar 2025 17:50:37 +0100 Subject: fix terminology --- src/client/client.cpp | 8 ++++---- src/server/main.cpp | 2 +- src/server/shared_memory_server.h | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index cbaddeb..e7853a8 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -98,13 +98,13 @@ bool Client::request_processed(SharedMemory* shared_memory, int index) return true; } - for (int i = shared_memory->head - 1; i != shared_memory->tail; i = (i - 1) % QUEUE_SIZE) { + for (int i = shared_memory->head; i != shared_memory->tail; i = (i + 1) % QUEUE_SIZE) { if (i == index) { return false; } } - return shared_memory->tail != index; + return true; } int Client::send_request( @@ -121,12 +121,12 @@ int Client::send_request( pthread_cond_wait(&shared_memory->cond_var, &shared_memory->mutex); } - index = shared_memory->head; + index = shared_memory->tail; Request* request = &shared_memory->request[index]; request->type = type; strncpy(request->key, k.value_or("null").c_str(), MAX_KEY_SIZE); strncpy(request->value, v.value_or("null").c_str(), MAX_VALUE_SIZE); - shared_memory->head = (1 + shared_memory->head) % QUEUE_SIZE; + shared_memory->tail = (1 + shared_memory->tail) % QUEUE_SIZE; shared_memory->full = shared_memory->head == shared_memory->tail; pthread_cond_signal(&shared_memory->cond_var); diff --git a/src/server/main.cpp b/src/server/main.cpp index d724bd5..75939e0 100644 --- a/src/server/main.cpp +++ b/src/server/main.cpp @@ -8,7 +8,7 @@ int main(int argc, char* argv[]) { if (argc != 2) { - std::cout << "One argument required" << '\n'; + std::cout << "Usage: " << argv[0] << " \n"; return 1; } diff --git a/src/server/shared_memory_server.h b/src/server/shared_memory_server.h index 6c97e64..3ac375a 100644 --- a/src/server/shared_memory_server.h +++ b/src/server/shared_memory_server.h @@ -32,6 +32,7 @@ public: mmap(0, sizeof(SharedMemory), PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0); shared_memory->tail = shared_memory->head = 0; + shared_memory->full = false; pthread_mutexattr_t mutex_attr; pthread_condattr_t cond_attr; @@ -68,7 +69,7 @@ public: pthread_cond_wait(&shared_memory->cond_var, &shared_memory->mutex); } - Request* request = &shared_memory->request[shared_memory->tail]; + Request* request = &shared_memory->request[shared_memory->head]; K key = deserialize(request->key); V value = deserialize(request->value); @@ -130,7 +131,7 @@ public: default: break; } - shared_memory->tail = (1 + shared_memory->tail) % QUEUE_SIZE; + shared_memory->head = (1 + shared_memory->head) % QUEUE_SIZE; shared_memory->full = false; pthread_cond_signal(&shared_memory->cond_var); pthread_mutex_unlock(&shared_memory->mutex); -- cgit 1.4.1