static int disk_img_open(const char *path, struct fuse_file_info *fi) { if(strcasecmp(path, disk_img_data.raw_filename) != 0) return -ENOENT; /*if((fi->flags & 3) != O_RDWR) { XDBG("FS open unsuccessful"); return -EACCES; } */ XDBG("FS open successful"); return 0; }
static int disk_img_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) { (void) offset; (void) fi; if(strcasecmp(path, "/") != 0) return -ENOENT; filler(buf, ".", NULL, 0); filler(buf, "..", NULL, 0); filler(buf, disk_img_data.raw_filename + 1, NULL, 0); XDBG(" ls on dir "); return 0; }
//主线程 void LogGate::v_timetick(QWORD usec) { DWORD cur = usec/1000/1000; _close_iter tmp_close; NetProcessor *clo = 0; { ScopeWriteLock swl(_close_critical); for (_close_iter it = _close_list.begin(); it != _close_list.end(); ) { tmp_close = it++; if (tmp_close->second + 3 <= cur) { clo = tmp_close->first; v_CloseNp(clo); XDBG("[%s],_close_list 删除连接,%s(%llu),%p", serverName, clo->name(), clo->id(), clo); _close_list.erase(tmp_close); SAFE_DELETE(clo); } } } }