private void RunQueue()
 {
     // empty the queue of readers
     while (readers.Count > 0)
     {
         Reader r = readers.Dequeue();
         r.OnOpenReader  += OnOpenReader;
         r.OnCloseReader += OnCloseReader;
         r.OpenRead();
     }
 }