aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2023-09-25 23:07:20 -0400
committerGitHub <noreply@github.com>2023-09-25 23:07:20 -0400
commit99488133dad8e8b6311c6719b8ee7688b0f1b7a6 (patch)
treef317189eb389addb6edc7a0b966e75c3ef84e14c
parent188a810cf2a4aef190d40ab166332b13ef3a165e (diff)
Update README.md
-rw-r--r--README.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/README.md b/README.md
index 2c842e6..d6b7c33 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ Running the 3 executables without arguments will tell you the necessary argument
I did not implement origonal design doc, due to random malloc errors with the autograder. I rewrote the server, with the the design...
* A "select_thread" controls accepting new clients and responding to commands from clients. It redirects the logic to separate helper functions to send replies.
-* The station information is held by an array. Each station has a thread that broadcasts to the listeners every half-second (at half the rate per second). During the downtime of this half-second, the station file is read into a buffer and threads are created off of this buffer, waiting to be released. At the top of the second, the station thread then bradcasts a `cond` variable to start all threads that send the station.
+* The station information is held by an array. Each station has a thread that broadcasts to the listeners every half-second (at half the rate per second). At the bottom of this half-second, the station file is read into a buffer and threads are created off of this buffer, waiting to be released. At the top of this half-second, the station thread then bradcasts a `cond` variable to start all threads that send the station.
* The `users` pointer containing the user data (along with the separate stations pointer) has a mutex `users_mutex` that allows safe-thread write and deletion. This pointer is also dynamic, using realloc when more memory is needed. There are a few memory optimizations implemented (see `init_user(...)`).
* The code is well documented, so many smaller design choices can be read there :)