diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 17:50:37 +0100 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 17:50:37 +0100 |
| commit | 03ad55130b4f0047eb64d3cc9947b98f0130623e (patch) | |
| tree | 1f9014a5a92335051541d34710e3556781d044a8 /src | |
| parent | 3939238f3fe46ed36919f29cbebe824341689960 (diff) | |
| download | BT-Programming-Assignment-03ad55130b4f0047eb64d3cc9947b98f0130623e.tar.gz BT-Programming-Assignment-03ad55130b4f0047eb64d3cc9947b98f0130623e.zip | |
fix terminology
Diffstat (limited to '')
| -rw-r--r-- | src/client/client.cpp | 8 | ||||
| -rw-r--r-- | src/server/main.cpp | 2 | ||||
| -rw-r--r-- | 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] << " <number-of-buckets>\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<K>(request->key); V value = deserialize<V>(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); |