1 #include "cachefsasync.h"
3 #include <wvstreamlist.h>
4 #include <wvistreamlist.h>
7 unsigned char AsyncRequest::counter
= 0;
8 WvStreamList
*AsyncRequest::delayed
= NULL
;
10 AsyncRequest::AsyncRequest(CacheFS
*_cachefs
) : cachefs(_cachefs
)
13 uses_continue_select
= true;
16 delayed
= new WvStreamList();
20 delayed
->append(this, false);
28 personal_stack_size
= 2048;
29 WvIStreamList::globallist
.append(this, true);
32 AsyncRequest::~AsyncRequest()
35 terminate_continue_select();
37 if (!delayed
->isempty())
39 delayed
->first()->alarm(0);
40 delayed
->unlink_first();
44 void AsyncReadblock::execute()
48 //fprintf(stderr, "Starting Async read fd = %d index = %d\n", fd, index);
49 int r
= cachefs
->fs
->fs_read(this, fd
, buf
, FUSE_BLOCK_SIZE
,
50 index
* FUSE_BLOCK_SIZE
);
52 cachefs
->update_page_status(fd
, index
, r
);