Example #1
0
        public static void QueueWrite(Stream stream, byte[] data, long fileOffset, int dataOffset, long length, DiskIOWriteCallback callback,
                                      object state)
        {
            while(WriteQueue.Count > MaxPendingOps)
                Thread.Sleep(10);

            DiskIOWriteState writeData = WriteCache.Get().Init(stream, data, fileOffset, dataOffset, length, callback, state);
            WriteQueue.Enqueue(writeData);
            if(WriteQueue.Count>MinPendingOps) IOHandle.Set();
        }
Example #2
0
 public DiskIOWriteState Init(Stream stream, byte[] data, long fileOffset, int dataOffset, long length,
                              DiskIOWriteCallback callback, object state)
 {
     Stream     = stream;
     FileOffset = fileOffset;
     DataOffset = dataOffset;
     Length     = length;
     Data       = data;
     Callback   = callback;
     State      = state;
     return(this);
 }
Example #3
0
 public DiskIOWriteState Init(Stream stream, byte[] data, long fileOffset, int dataOffset, long length,
                              DiskIOWriteCallback callback, object state)
 {
     Stream = stream;
     FileOffset = fileOffset;
     DataOffset = dataOffset;
     Length = length;
     Data = data;
     Callback = callback;
     State = state;
     return this;
 }
Example #4
0
        public static void QueueWrite(Stream stream, byte[] data, long fileOffset, int dataOffset, long length, DiskIOWriteCallback callback,
                                      object state)
        {
            while (WriteQueue.Count > MaxPendingOps)
            {
                Thread.Sleep(10);
            }

            DiskIOWriteState writeData = WriteCache.Get().Init(stream, data, fileOffset, dataOffset, length, callback, state);

            WriteQueue.Enqueue(writeData);
            if (WriteQueue.Count > MinPendingOps)
            {
                IOHandle.Set();
            }
        }