CN106294137A - 一种linux用户态自旋锁死锁检测方法及系统 - Google Patents
一种linux用户态自旋锁死锁检测方法及系统 Download PDFInfo
- Publication number
- CN106294137A CN106294137A CN201610622370.8A CN201610622370A CN106294137A CN 106294137 A CN106294137 A CN 106294137A CN 201610622370 A CN201610622370 A CN 201610622370A CN 106294137 A CN106294137 A CN 106294137A
- Authority
- CN
- China
- Prior art keywords
- user space
- spin lock
- deadlock
- spin
- lock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种linux用户态自旋锁死锁检测方法及系统,包括:对用户态自旋锁的数据结构进行封装;对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序;可见,在本实施例中,通过调用内核lockdep代码来实现对用户态自旋锁死锁的检测,可以有效检测出用户态C程序的死锁。
Description
技术领域
本发明涉及操作系统故障管理领域,更具体地说,涉及一种linux用户态自旋锁死锁检测方法及系统。
背景技术
目前,内核死锁是长期困扰内核开发人员的问题之一,但自内核引入lockdep调试模块之后,内核死锁得到了解决。但是,Linux系统用户态C程序同样存在死锁问题。
因此,如何检测用户态自旋锁死锁,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种linux用户态自旋锁死锁检测方法及系统,以实现检测用户态自旋锁死锁。
为实现上述目的,本发明实施例提供了如下技术方案:
一种linux用户态自旋锁死锁检测方法,包括:
对用户态自旋锁的数据结构进行封装;
对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
其中,所述在用户态程序编译时引入所述自旋锁死锁检测库文件,包括:
所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
其中,检测自旋锁是否死锁之前,还包括:
判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;
若没有引入,则执行所述用户态程序;若引入,则执行检测所述用户态程序的自旋锁是否死锁的步骤。
其中,所述对用户态自旋锁的数据结构进行封装,包括:
在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构。
其中,所述对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,包括:
对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码。
一种linux用户态自旋锁死锁检测系统,包括:
第一封装模块,用于对用户态自旋锁的数据结构进行封装;
第二封装模块,用于对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
编译模块,用于在用户态程序编译时引入所述自旋锁死锁检测库文件;
检测模块,用于检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
其中,所述编译模块通过所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
其中,还包括:
判断模块,用于判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;若没有引入,则执行所述用户态程序;若引入,则触发所述检测模块。
其中,所述第一封装模块通过在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构,以对用户态自旋锁的数据结构进行封装。
其中,所述第二封装模块通过对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码,以编译生成自旋锁死锁检测库文件。
通过以上方案可知,本发明实施例提供的一种linux用户态自旋锁死锁检测方法及系统,包括:对用户态自旋锁的数据结构进行封装;对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序;可见,在本实施例中,通过调用内核lockdep代码来实现对用户态自旋锁死锁的检测,可以有效检测出用户态C程序的死锁。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种linux用户态自旋锁死锁检测方法流程示意图;
图2为本发明实施例公开的用户态自旋锁死锁检测库生成流程图;
图3为本发明实施例公开的用户态程序执行死锁检测流程;
图4为本发明实施例公开的一种linux用户态自旋锁死锁检测系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种linux用户态自旋锁死锁检测方法及系统,以实现检测用户态自旋锁死锁。
参见图1,本发明实施例提供的一种linux用户态自旋锁死锁检测方法,包括:
S101、对用户态自旋锁的数据结构进行封装;
其中,所述对用户态自旋锁的数据结构进行封装,包括:
在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构。
具体的,在本实施例中,通过调用内核lockdep代码来实现对用户态自旋锁死锁的检测,可以有效检测出用户态C程序的死锁。通过封装用户态自旋锁数据结构和自旋锁接口实现对内核lockdep代码调用。
具体的,在本方案中,自旋锁数据结构封装,是在原有的数据结构pthread_spinlock_t基础上添加lockdep_map数据结构,定义为lockdep_pthread_spin_t数据机构。具体如下:
变量定义如下:
#define NR_LOCKDEP_CACHING_CLASSES 2#define MAX_LOCKDEP_SUBCLASSES8UL
S102、对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
其中,所述对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,包括:
对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码。
具体的,在本实施例中,自旋锁调用接口封装,是自旋锁提供给用户的pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy等接口进行封装,引入内核lockdep代码,通过直接引入内核文件的方式调用内核代码。
引入lockdep代码,定义用户态文件lockdep.c、lockdep_states.h和lockdep_internals.h。lockdep.c。代码如下:
其中,lock_acquire函数是内核lockdep死锁检测代码入口,调用之后,用户态自旋锁进入lockdep代码,进行死锁检测。
其中,lock_release函数功能是将锁释放,包括从链表删除,释放相关数据结构,检测依赖关系等。
编译用户态自旋锁检测动态静态链接库,将以上实现编译成动态或者静态链接库。
S103、在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
其中,所述在用户态程序编译时引入所述自旋锁死锁检测库文件,包括:所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
具体的,参见图2,在本实施例中提供的用户态自旋锁死锁检测库生成流程图,首先对用户态自旋锁的数据结构和API进行封装,引入lockdep内核死锁检测函数,编译生成自旋锁死锁检测库文件;用户态程序编译时引入自旋锁死锁检测库文件,用户程序自旋锁操作指向自旋锁死锁检测库文件封装的接口。
其中,检测自旋锁是否死锁之前,还包括:
判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;
若没有引入,则执行所述用户态程序;若引入,则执行检测所述用户态程序的自旋锁是否死锁的步骤。
具体的,参见图3,本实施例提供的用户态程序执行死锁检测流程,首先判断编译中是否引入自旋锁库文件,如果没有引入,直接运行程序本身功能结束;如果引入自旋锁检测模块,检测自旋锁死锁,如果存在死锁,打入死锁信息结束;如果不存在死锁,程序执行本身功能结束。
下面对本发明实施例提供的自旋锁死锁检测系统进行介绍,下文描述的自旋锁死锁检测系统与上文描述的自旋锁死锁检测方法可以相互参照。
参见图4,本发明实施例提供的一种linux用户态自旋锁死锁检测系统,包括:
第一封装模块100,用于对用户态自旋锁的数据结构进行封装;
第二封装模块200,用于对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
编译模块300,用于在用户态程序编译时引入所述自旋锁死锁检测库文件;
检测模块400,用于检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
基于上述技术方案,所述编译模块300通过所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
基于上述技术方案,本方案还包括:
判断模块,用于判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;若没有引入,则执行所述用户态程序;若引入,则触发所述检测模块。
基于上述技术方案,所述第一封装模块100通过在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构,以对用户态自旋锁的数据结构进行封装。
基于上述技术方案,所述第二封装模块200通过对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码,以编译生成自旋锁死锁检测库文件。
本发明实施例提供的一种linux用户态自旋锁死锁检测方法及系统,包括:对用户态自旋锁的数据结构进行封装;对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序;可见,在本实施例中,通过调用内核lockdep代码来实现对用户态自旋锁死锁的检测,可以有效检测出用户态C程序的死锁。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种linux用户态自旋锁死锁检测方法,其特征在于,包括:
对用户态自旋锁的数据结构进行封装;
对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
在用户态程序编译时引入所述自旋锁死锁检测库文件,检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
2.根据权利要求1所述的linux用户态自旋锁死锁检测方法,其特征在于,所述在用户态程序编译时引入所述自旋锁死锁检测库文件,包括:
所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
3.根据权利要求2所述的linux用户态自旋锁死锁检测方法,其特征在于,检测自旋锁是否死锁之前,还包括:
判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;
若没有引入,则执行所述用户态程序;若引入,则执行检测所述用户态程序的自旋锁是否死锁的步骤。
4.根据权利要求1-3中任意一项所述的linux用户态自旋锁死锁检测方法,其特征在于,所述对用户态自旋锁的数据结构进行封装,包括:
在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构。
5.根据权利要求4所述的linux用户态自旋锁死锁检测方法,其特征在于,所述对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,包括:
对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码。
6.一种linux用户态自旋锁死锁检测系统,其特征在于,包括:
第一封装模块,用于对用户态自旋锁的数据结构进行封装;
第二封装模块,用于对用户态自旋锁的接口进行封装,引入lockdep内核死锁检测函数,并编译生成自旋锁死锁检测库文件;
编译模块,用于在用户态程序编译时引入所述自旋锁死锁检测库文件;
检测模块,用于检测所述用户态程序的自旋锁是否死锁;如果存在死锁,则打入死锁信息;如果不存在死锁,则继续执行所述用户态程序。
7.根据权利要求6所述的linux用户态自旋锁死锁检测系统,其特征在于,所述编译模块通过所述用户态程序自旋锁操作指向所述自旋锁死锁检测库文件的封装接口。
8.根据权利要求7所述的linux用户态自旋锁死锁检测系统,其特征在于,还包括:
判断模块,用于判断所述用户态程序编译中是否引入所述自旋锁死锁检测库文;若没有引入,则执行所述用户态程序;若引入,则触发所述检测模块。
9.根据权利要求6-8中任意一项所述的linux用户态自旋锁死锁检测系统,其特征在于,
所述第一封装模块通过在用户态自旋锁数据结构pthread_spinlock_t上添加lockdep_map数据结构,以对用户态自旋锁的数据结构进行封装。
10.根据权利要求9所述的linux用户态自旋锁死锁检测系统,其特征在于,
所述第二封装模块通过对用户态自旋锁的接口pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_spin_trylock、pthread_spin_destroy进行封装,引入内核lockdep死锁代码,以编译生成自旋锁死锁检测库文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610622370.8A CN106294137A (zh) | 2016-08-01 | 2016-08-01 | 一种linux用户态自旋锁死锁检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610622370.8A CN106294137A (zh) | 2016-08-01 | 2016-08-01 | 一种linux用户态自旋锁死锁检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294137A true CN106294137A (zh) | 2017-01-04 |
Family
ID=57663994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610622370.8A Pending CN106294137A (zh) | 2016-08-01 | 2016-08-01 | 一种linux用户态自旋锁死锁检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294137A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229550A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种linux内核自旋锁死锁检测报告系统和方法 |
CN108959085A (zh) * | 2018-06-25 | 2018-12-07 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN109918207A (zh) * | 2019-02-18 | 2019-06-21 | 天津麒麟信息技术有限公司 | 一种非侵入的c程序死锁定位方法 |
CN116225970A (zh) * | 2023-05-08 | 2023-06-06 | 麒麟软件有限公司 | 一种多线程程序分析方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078784A1 (en) * | 2002-10-17 | 2004-04-22 | International Business Machines Corporation, Armonk, New York | Collection and detection of differences of values of expressions/variables when debugging a computer process |
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
US20080294892A1 (en) * | 2007-05-25 | 2008-11-27 | Ingo Molnar | Method and system for a kernel lock validator |
CN102129391A (zh) * | 2011-03-14 | 2011-07-20 | 华中科技大学 | 一种数据库中自旋锁的实现方法 |
WO2011085647A1 (zh) * | 2010-01-12 | 2011-07-21 | 腾讯科技(深圳)有限公司 | 一种软件安装的检测方法和装置 |
CN102222015A (zh) * | 2010-04-13 | 2011-10-19 | 三星电子(中国)研发中心 | 检测多线程程序中的死锁的方法及系统 |
CN103399818A (zh) * | 2013-08-13 | 2013-11-20 | 中国科学技术大学苏州研究院 | 操作系统中的死锁检测方法 |
-
2016
- 2016-08-01 CN CN201610622370.8A patent/CN106294137A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078784A1 (en) * | 2002-10-17 | 2004-04-22 | International Business Machines Corporation, Armonk, New York | Collection and detection of differences of values of expressions/variables when debugging a computer process |
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
US20080294892A1 (en) * | 2007-05-25 | 2008-11-27 | Ingo Molnar | Method and system for a kernel lock validator |
WO2011085647A1 (zh) * | 2010-01-12 | 2011-07-21 | 腾讯科技(深圳)有限公司 | 一种软件安装的检测方法和装置 |
CN102222015A (zh) * | 2010-04-13 | 2011-10-19 | 三星电子(中国)研发中心 | 检测多线程程序中的死锁的方法及系统 |
CN102129391A (zh) * | 2011-03-14 | 2011-07-20 | 华中科技大学 | 一种数据库中自旋锁的实现方法 |
CN103399818A (zh) * | 2013-08-13 | 2013-11-20 | 中国科学技术大学苏州研究院 | 操作系统中的死锁检测方法 |
Non-Patent Citations (3)
Title |
---|
FIRKRAAG: "Something about lockdep", 《 HTTP://BLOG.CHINAUNIX.NET/UID25579226ID4172426.HTML》 * |
LOTTE: ""Linux 死锁检测模块 Lockdep 简介"", 《HTTP://KERNEL.MEIZU.COM/ LINUX-DEAD-LOCK-DETECT-LOCKDEP.HTML》 * |
SASHA LEVIN: ""[PATCH v3 1/7] liblockdep: wrap kernel/lockdep.c to allow usage from user space"", 《HTTPS://LWN.NET/ARTICLES/536366/》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229550A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种linux内核自旋锁死锁检测报告系统和方法 |
CN108959085A (zh) * | 2018-06-25 | 2018-12-07 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN108959085B (zh) * | 2018-06-25 | 2020-09-01 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN109918207A (zh) * | 2019-02-18 | 2019-06-21 | 天津麒麟信息技术有限公司 | 一种非侵入的c程序死锁定位方法 |
CN116225970A (zh) * | 2023-05-08 | 2023-06-06 | 麒麟软件有限公司 | 一种多线程程序分析方法 |
CN116225970B (zh) * | 2023-05-08 | 2023-08-04 | 麒麟软件有限公司 | 一种多线程程序分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | ScanDal: Static analyzer for detecting privacy leaks in android applications | |
CN106294137A (zh) | 一种linux用户态自旋锁死锁检测方法及系统 | |
CN107092488B (zh) | 一种对应用进行无侵入化埋点的实现方法及系统 | |
CN102831344B (zh) | 一种进程的处理方法和装置 | |
US20090222792A1 (en) | Automatic modification of executable code | |
CN101866408A (zh) | 一种基于虚拟机架构的透明信任链构建系统 | |
Lee et al. | Towards a practical solution to detect code reuse attacks on ARM mobile devices | |
Chisnall | The challenge of cross-language interoperability | |
US20190370106A1 (en) | Unexpected event detection during execution of an application | |
US20210019193A1 (en) | Agent driven cluster gating for service management | |
Jang et al. | Rethinking anti-emulation techniques for large-scale software deployment | |
CN109409098B (zh) | 防止剪切板数据泄露的方法和装置 | |
CN103106356B (zh) | 一种在安全环境中生成代码提高软件保护强度的方法 | |
CN106201730A (zh) | 一种linux用户态互斥锁死锁检测方法及系统 | |
CN111381816A (zh) | 应用程序的获取方法、装置、设备及存储介质 | |
CN106201731A (zh) | 一种用户态读写锁死锁检测方法及系统 | |
US20170286072A1 (en) | Custom class library generation method and apparatus | |
Krämer | Synchronization constraints in object interfaces | |
Schmedes et al. | Towards distributed runtime monitoring with c++ contracts | |
Binder | Secure and reliable java-based middleware-challenges and solutions | |
Choi et al. | Lightweight deadlock detection technique for embedded systems via OS-level analysis: work-in-progress | |
Dai et al. | Light‐weight resource leak testing based on finalisers | |
Sakhare et al. | Detecting No-Sleep Bugs Using Sequential Reference Counts | |
Hasu | Concrete error handling mechanisms should be configurable | |
Hansen et al. | On the origin of events: branching cells as stubborn sets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |
|
WD01 | Invention patent application deemed withdrawn after publication |