private void Notify()
{
try
{
log.Info("got request to notify on post");
foreach (string username in subscribed.Keys)
{
lock (subscribed[username])
{
if (!username.Equals("guest"))
{
String listensTo = "";
subscribed.TryGetValue(username, out listensTo);
if (policyManager.ShouldNotify(posted, username, listensTo))
{
Monitor.PulseAll(subscribed[username]);
String obj = "";
subscribed.TryRemove(username, out obj);
}
}
else Monitor.PulseAll(subscribed[username]);
}
}
}
catch (Exception e)
{
log.Error("failed to notify", e);
throw e;
}
}