You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-6Lines changed: 29 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,24 @@
2
2
3
3
Este repositorio contiene la solución propuesta para la PoC detallada en la [consigna](./TP2_Threads_Enunciado.pdf).
4
4
5
+
## Diagrama de hilos
6
+
7
+
El diagrama se puede ver con más detalle descargando la imagen ubicada en [./docs/threads_diagram.png](./docs/threads_diagram.png) o el mismo archivo drawio [./docs/threads_diagram.drawio](./docs/threads_diagram.drawio).
8
+
9
+
<imgsrc="./docs/threads_diagram.png">
10
+
11
+
## Queues
12
+
13
+
Todas las Queues utilizadas fueron del tipo unbounded, entendiendo que el sistema podrá tomar una cantidad virtualmente infinita de clientes.
14
+
15
+
Las queues de los ClientConnections son bloqueantes porque me interesa que esos threads no hagan busy wait.
16
+
17
+
Los pop de las queues con los que JazzJackrabbit2GameServer debe interactuar son no bloqueantes ya que no quiere bloquear el gameloop. Sin embargo, los push de las mismas son bloqueantes.
18
+
19
+
## Tick system
20
+
21
+
Para el servidor se utiliza un sistema de ticks, inspirado en el funcionamiente del motor Source by Valve. Así como un frame es una actualización de la imagen gráfica que renderiza un motor gráfico. Un tick o "gameframe" es una actualización de la lógica/estado del juego.
22
+
5
23
## Setup
6
24
7
25
Instalar pre-commit hooks:
@@ -31,10 +49,7 @@ Compilación con código con wrap randomizado de sockets:
En algunos headers (.h) puntuales se suprimió el warning `unusedStructMember` de cppcheck. Esta decisión fue tomada porque es un falso positivo, en todos los casos que sucede, es sólo en headers de clases sobre variables privadas que sí se usan dentro del código (en el .cpp).
74
+
75
+
En el método Army::receive_attack de la clase Army, se suprimió el flag `useStlAlgorithm`, dado que el algoritmo sugerido por cppcheck no cumplía con las necesidades del método. Así que se continuó usando un ranged-based for loop.
76
+
77
+
55
78
## Licencia
56
79
57
80
GPL v2
58
81
59
82
## Código fuente utilizado
60
83
61
84
Se agradece el código proveído por la cátedra para los sockets, threads y queue. Se trabajó sobre ese código y se lo modificó.
62
-
Código fuente usado bajo licencia GPL v2: https://github.com/eldipa/sockets-en-cpp agradecimiento a [@eldipa](https://github.com/eldipa).
85
+
Código fuente usado bajo licencia GPL v2: https://github.com/eldipa/sockets-en-cppy https://github.com/eldipa/hands-on-threadsagradecimiento a [@eldipa](https://github.com/eldipa).
0 commit comments