+El Servidor trajo varios problemas, en especial en cuanto al manejo de
+\emph on
+sockets
+\emph default
+ y
+\emph on
+threads
+\emph default
+.
+ El uso de señales (para hacer el servidor orientado a eventos) dio también
+ algunos problemas menores.
+\layout Subsection
+
+
+\emph on
+Threads
+\emph default
+.
+\layout Standard
+
+El principal problema de los threads fue el no poder saber fácilmente donde
+ se producía un error, en especial cuando el error venía por la falta de
+ un
+\emph on
+mutex
+\emph default
+.
+ En términos generales, cada vez que el server tenía una violación de segmento
+ se debía a la falta de un
+\emph on
+mutex
+\emph default
+.
+\layout Standard
+
+Otro problema eran las excepciones no manejadas dentro del método
+\family typewriter
+real_run()
+\family default
+ (que se ejecuta en su propio
+\emph on
+thread
+\emph default
+).
+ Aunque se incluía un bloque
+\family typewriter
+try ; catch
+\family default
+ en el programa principal, al ocurrir una excepción en un
+\emph on
+thread
+\emph default
+, dicha excepción no
+\emph on
+sube
+\emph default
+ hasta el hilo padre y el programa sale con
+\family typewriter
+abort()
+\family default
+.
+ Es por esto que cada
+\family typewriter
+real_run()
+\family default
+ tiene su propio bloque
+\family typewriter
+try ; catch
+\family default
+ donde pueda surgir una excepción y se incluyó la
+\family typewriter
+signal_error()
+\family default
+ en
+\family typewriter
+Runnable
+\family default
+ para poder avisar de dicho error a quien lo necesite.
+\layout Subsection
+
+
+\emph on
+Sockets
+\emph default
+.
+\layout Standard
+
+El principal problema con los
+\emph on
+sockets
+\emph default
+ fue la imposibilidad (por enunciado) de usar
+\emph on
+sockets
+\emph default
+ no bloqueantes.
+ Esto tuvo particular repercusión en el
+\family typewriter
+TCPServer
+\family default
+, ya que una vez llamado al
+\family typewriter
+accept()
+\family default
+ para aceptar una nueva conexión, esta no retorna hasta que efectivamente
+ se reciba una nueva conexión, haciendo imposible terminar el servidor de
+ otra manera.
+ Para resolver esto, al finalizar el
+\family typewriter
+TCPServer
+\family default
+ se hace una
+\emph on
+conexión suicida
+\emph default
+ para hacer que la llamada a
+\family typewriter
+accept()
+\family default
+ retorne y el servidor pueda ser cerrado limpiamente.
+\layout Subsection
+
+Señales.
+\layout Standard