protected void serviceClient(ServiceRecord clientRecord)
{
clientRecord.serviced();
Serviceable client = clientRecord.client;
// client may have unsubscribed while it had items queued
if (client == null)
return;
ContextManager cm = contextMgr;
if (SanityManager.DEBUG)
{
SanityManager.ASSERT(cm != null, "Context manager is null");
SanityManager.ASSERT(client != null, "client is null");
}
try
{
int status = client.performWork(cm);
if (clientRecord.subscriber)
return;
if (status == Serviceable.REQUEUE)
{
List<ServiceRecord> queue = client.serviceASAP() ? highPQ : normPQ;
synchronized (this) {
queue.add(clientRecord);
if (SanityManager.DEBUG) {