void QueueWrite(BufferedIO io, DiskIOCallback callback) { io.Callback = callback; if (Thread.CurrentThread == IOLoop.Thread) { PerformWrite(io); _cache.Enqueue (io); } else lock (_bufferLock) { _bufferedWrites.Enqueue(io); if (_bufferedWrites.Count == 1) IOLoop.Queue(_loopTask); } }