编译器生成的异步可枚举对象

    公开(公告)号:CN111771186A

    公开(公告)日:2020-10-13

    申请号:CN201980014315.2

    申请日:2019-02-18

    Abstract: 生成单个异步可枚举对象,其包含异步地迭代可枚举所需的数据和方法。异步可枚举对象包含用于一次一步遍历可枚举的代码,以及挂起迭代以等待异步操作的完成和在异步操作的完成后恢复迭代所需的操作。分配单个对象来执行所有这些任务减少了执行异步枚举所需的存储器消耗。

    编译器生成的异步可枚举对象

    公开(公告)号:CN111771186B

    公开(公告)日:2025-01-07

    申请号:CN201980014315.2

    申请日:2019-02-18

    Abstract: 生成单个异步可枚举对象,其包含异步地迭代可枚举所需的数据和方法。异步可枚举对象包含用于一次一步遍历可枚举的代码,以及挂起迭代以等待异步操作的完成和在异步操作的完成后恢复迭代所需的操作。分配单个对象来执行所有这些任务减少了执行异步枚举所需的存储器消耗。

    可恢复的方法
    4.
    发明授权

    公开(公告)号:CN102859489B

    公开(公告)日:2016-06-29

    申请号:CN201180020904.5

    申请日:2011-04-26

    CPC classification number: G06F8/314

    Abstract: 提供了API,所述API处于编程语言的外部但是提供可插入到语言编译器中的功能。所提供的API调节与使用通用基于模式的方案进行的异步编程、迭代器或编写对称协同例程相关联的功能。在API中提供了若干类型的可恢复方法,所述可恢复方法可以应用于以传统程序代码编写的方法主体。以传统编程代码编写的方法主体中的在句法上可区分的控制点通过编译器使用外部API来调用该代码的变换。经变换的代码实现夹在经变换的代码的控制点之间的代码的暂停和恢复。里面具有控制点的方法内所包括的源代码被变换为使得该方法内的代码可以在分立的部分中执行,每个部分都在经变换的代码中的控制点处开始和结束。

    在线性栈上高效恢复协同例程

    公开(公告)号:CN102141937B

    公开(公告)日:2016-03-23

    申请号:CN201110008477.0

    申请日:2011-01-06

    CPC classification number: G06F9/4426 G06F9/4486 G06F9/485

    Abstract: 未挂起协同例程由机器调用栈机制来处理,其中该栈随着作出递归调用和从递归调用返回而增长和收缩。然而,在协同例程挂起时,执行附加的调用栈处理。发出挂起消息,并且调用栈的整个能恢复部分被移除并被复制到堆。将控制返回给驱动程序方法(恢复器)的帧被复制到调用栈,从而协同例程的恢复不会递归地重新激活整个调用栈。相反,恢复器仅重新激活被称为叶帧的最顶部或最当前帧。在协同例程挂起时,其不返回到其调用者,而是返回到已重新激活它的恢复器。

Patent Agency Ranking