--------------------- PatchSet 301 Date: 2002/12/10 10:14:37 Author: rbcollins Branch: unify-io Tag: (none) Log: extract method Members: src/fs/aufs/store_asyncufs.h:1.2.12.15->1.2.12.16 src/fs/aufs/store_io_aufs.cc:1.3.12.18->1.3.12.19 Index: squid3/src/fs/aufs/store_asyncufs.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_asyncufs.h,v retrieving revision 1.2.12.15 retrieving revision 1.2.12.16 diff -u -r1.2.12.15 -r1.2.12.16 --- squid3/src/fs/aufs/store_asyncufs.h 10 Dec 2002 01:20:40 -0000 1.2.12.15 +++ squid3/src/fs/aufs/store_asyncufs.h 10 Dec 2002 10:14:37 -0000 1.2.12.16 @@ -127,6 +127,7 @@ link_list *pending_reads; void ioCompletedNotification(); void closeCompleted(); + void queueRead(char *, size_t, off_t, STRCB *, void *); private: CBDATA_CLASS(squidaiostate_t); void openDone(); Index: squid3/src/fs/aufs/store_io_aufs.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_io_aufs.cc,v retrieving revision 1.3.12.18 retrieving revision 1.3.12.19 diff -u -r1.3.12.18 -r1.3.12.19 --- squid3/src/fs/aufs/store_io_aufs.cc 10 Dec 2002 01:20:40 -0000 1.3.12.18 +++ squid3/src/fs/aufs/store_io_aufs.cc 10 Dec 2002 10:14:37 -0000 1.3.12.19 @@ -257,6 +257,20 @@ return fd > -1; } +void +squidaiostate_t::queueRead(char *buf, size_t size, off_t offset, STRCB *callback, void *callback_data) +{ + debug(79, 3) ("squidaiostate_t::queueRead: queueing read\n"); + assert(opening); + assert (pending_reads == NULL); + _queued_read *q = (struct _queued_read *)memPoolAlloc(aufs_qread_pool); + q->buf = buf; + q->size = size; + q->offset = offset; + q->callback = callback; + q->callback_data = cbdataReference(callback_data); + linklistPush(&pending_reads, q); +} /* Read */ void @@ -267,17 +281,8 @@ assert(sio->read.callback_data == NULL); assert(!aiostate->reading); if (!((AUFSFile *)aiostate->theFile.getRaw())->canRead()) { - struct _queued_read *q; debug(79, 3) ("storeAufsRead: queueing read because theFile can't read\n"); - assert(aiostate->opening); - assert(aiostate->pending_reads == NULL); - q = (struct _queued_read *)memPoolAlloc(aufs_qread_pool); - q->buf = buf; - q->size = size; - q->offset = offset; - q->callback = callback; - q->callback_data = cbdataReference(callback_data); - linklistPush(&(aiostate->pending_reads), q); + aiostate->queueRead (buf, size, offset, callback, callback_data); return; } sio->read.callback = callback;