HEAD: remove ridiculous dependency of wvmapi (actually wvtnef) on evolution
[wvapps.git] / funfs / cachefsasync.cc
blobd33a8149d2ba3075b561e18272408115943c4eb7
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)
12 ok = true;
13 uses_continue_select = true;
15 if (!delayed)
16 delayed = new WvStreamList();
18 if (counter++ > 20)
20 delayed->append(this, false);
22 else
24 alarm(0);
28 personal_stack_size = 2048;
29 WvIStreamList::globallist.append(this, true);
32 AsyncRequest::~AsyncRequest()
34 counter--;
35 terminate_continue_select();
37 if (!delayed->isempty())
39 delayed->first()->alarm(0);
40 delayed->unlink_first();
44 void AsyncReadblock::execute()
46 WvStream::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);
54 ok = false;