函数fsp_alloc_from_free_frag
2024-09-10 09:27:17
/**********************************************************************//** Allocates a single free page from a space. */ static __attribute__((nonnull)) void fsp_alloc_from_free_frag( /*=====================*/ fsp_header_t* header, /*!< in/out: tablespace header */ xdes_t* descr, /*!< in/out: extent descriptor */ ulint bit, /*!< in: slot to allocate in the extent */ mtr_t* mtr) /*!< in/out: mini-transaction */ { ulint frag_n_used; ut_ad(xdes_get_state(descr, mtr) == XDES_FREE_FRAG); ut_a(xdes_get_bit(descr, XDES_FREE_BIT, bit, mtr)); xdes_set_bit(descr, XDES_FREE_BIT, bit, FALSE, mtr); /* Update the FRAG_N_USED field */ frag_n_used = mtr_read_ulint(header + FSP_FRAG_N_USED, MLOG_4BYTES, mtr); frag_n_used++; mlog_write_ulint(header + FSP_FRAG_N_USED, frag_n_used, MLOG_4BYTES, mtr); if (xdes_is_full(descr, mtr)) { /* The fragment is full: move it to another list */ flst_remove(header + FSP_FREE_FRAG, descr + XDES_FLST_NODE,mtr); //移除node到 FSP_FULL_FRAGE 详见 xdes_set_state(descr, XDES_FULL_FRAG, mtr); flst_add_last(header + FSP_FULL_FRAG, descr + XDES_FLST_NODE,mtr); mlog_write_ulint(header + FSP_FRAG_N_USED,frag_n_used - FSP_EXTENT_SIZE, MLOG_4BYTES,mtr); } }
最新文章
- 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至
- shc
- web.xml 模板和Servlet版本
- <;SharePoint 2013 用户界面设计与品牌化>;学习系列之---基础
- oracle存储过程执行中输出日志文件
- new和malloc的区别
- 解决jquery mobile的遇到高版本Chrome一直转圈,页面加载不出来的情况。
- objective_C 优缺点
- js获取页面的来源页
- vue子父组件通信
- unity零基础开始学习做游戏(二)让你的对象动起来
- H5 可堆叠的圆环进度条,支持任意数量子进度条
- springboot解决文件上传大小限制
- Ubuntu 将其他盘挂载到/home的子目录下
- Java教程01-基础语法
- [洛谷P1484] 种树
- 微信小程序获取用户信息
- %date~0,4%和 %time~0,2%等用法详解(转)
- socket.io笔记三之子命名空间的socket连接
- Mirror--如何TSQL查看镜像状态和镜像相关存储过程