greenlet source code -- g_save
2013-09-16 00:00
357 查看
g_save greenlet存在heap上的数据区间由
stack_copy到
stack_copy + stack_saved指定 这里在把greenlet的数据存到heap上时 判断之前的那段区间是否足够存放 如果不够的话 重新申请内存
static int g_save(PyGreenlet* g, char* stop) { /* Save more of g's stack into the heap -- at least up to 'stop' */
intptr_t sz1 = g->stack_saved; intptr_t sz2 = stop - g->stack_start; assert(g->stack_start != NULL); if (sz2 > sz1) { char* c = (char*)PyMem_Realloc(g->stack_copy, sz2); if (!c) { PyErr_NoMemory(); return -1; } memcpy(c+sz1, g->stack_start+sz1, sz2-sz1); g->stack_copy = c; g->stack_saved = sz2; } return 0; }
相关文章推荐
- python_lesson 2_save source code
- python greenlet背景介绍与实现机制
- JavaScript code to let users double-click to move back to the top of the page
- PLSQL Source Code Obfuscation
- [RK3288][Android7.1] Android7.1 nougat source code下载
- javascript - Get page source code - Stack Overflow
- Simulated Annealing Minimization: Single variable polynomial C++ source code.
- letcode Gray code
- compile pcl 1.8.1 from source code on ubuntu 16.04
- How to Get Source Code of a Linux Command on CentOS
- [AIR]AIR SQLite Administrator(with Source Code)
- DSS Source Code Analyse (17) - Data Flow of classical Live
- SQL Server 2005 Bible (with source code)
- domReady source code, domready源码
- 网络安全:PR Source code Build & to avoid killing
- (OK) Android-x86 —— compile the source code —— VirtualBox
- What is the best(funniest) comment in source code you have ever encountered?
- ESN(Echo State Network) Source Code
- Ununtu-gedit-安装插件Source Code Browser
- skynet_net source code analyses