void AcceptConnections()
{
try {
while (true) {
var client = listener.AcceptUnixClient();
var clientThread = new Thread(() =>
{
try {
using (var stream = client.GetStream()) {
while (true) {
AnswerMessage(stream);
}
}
} catch (Exception) {
// client will throw when connection is closed
} finally {
lock (activeClientsLock) {
activeClients.Remove(client);
}
}
});
lock (activeClientsLock) {
activeClients.Add(client);
}
clientThread.Name = string.Format("UnixClient{0}", clientCount++);
clientThread.Start ();
}
} catch (Exception ex) {
Debug.Fail (ex.Message);
}
}