ONE-TIME INITIALIZATION
    1.
    发明申请
    ONE-TIME INITIALIZATION 有权
    一次性初始化

    公开(公告)号:US20110214128A1

    公开(公告)日:2011-09-01

    申请号:US13106850

    申请日:2011-05-12

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.

    摘要翻译: 本发明的方面旨在为程序在多线程环境中执行数据项的一次初始化提供安全和有效的方式。 根据一个实施例,提供了一种允许程序执行可被多个线程访问的数据项的同步初始化的方法。 更具体地说,该方法包括从当前线程接收初始化数据项的请求。 响应于接收到请求,该方法确定当前线程是否是尝试初始化数据项的第一线程。 如果当前线程是尝试初始化数据项的第一个线程,则该方法会强制执行互斥,并阻止其他尝试初始化由并发线程创建的数据项。 然后,允许当前线程执行程序提供的程序代码来初始化数据项。

    One-time initialization
    2.
    发明授权
    One-time initialization 有权
    一次初始化

    公开(公告)号:US07962912B2

    公开(公告)日:2011-06-14

    申请号:US11432888

    申请日:2006-05-12

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.

    摘要翻译: 本发明的方面旨在为程序在多线程环境中执行数据项的一次初始化提供安全和有效的方式。 根据一个实施例,提供了一种允许程序执行可被多个线程访问的数据项的同步初始化的方法。 更具体地说,该方法包括从当前线程接收初始化数据项的请求。 响应于接收到请求,该方法确定当前线程是否是尝试初始化数据项的第一线程。 如果当前线程是尝试初始化数据项的第一个线程,则该方法会强制执行互斥,并阻止其他尝试初始化由并发线程创建的数据项。 然后,允许当前线程执行程序提供的程序代码来初始化数据项。

    Dynamic DLL cycle resolution
    3.
    发明授权
    Dynamic DLL cycle resolution 有权
    动态DLL循环分辨率

    公开(公告)号:US07900217B2

    公开(公告)日:2011-03-01

    申请号:US11693092

    申请日:2007-03-29

    IPC分类号: G06F13/00

    CPC分类号: G06F9/44521

    摘要: Deterministically resolving cycles in a library tree is disclosed. Resolving cycles supports certain processes such as safe library initialization. Cycles in the library tree are identified; at least one soft link in each identified cycle is identified; and the at least one soft link in each identified cycle is broken. If a cycle has no soft links, notification is provided indicating that the cycle cannot be broken. Identifying at least one soft link in each identified cycle comprises, for each link in the cycle, determining the dependent and supporting libraries; and determining if one or more functions in the supporting library are required for initializing the dependent library.

    摘要翻译: 公开了确定性地解析库树中的循环。 解决循环支持某些进程,例如安全库初始化。 识别图书馆树中的周期; 识别每个识别周期中的至少一个软链路; 并且每个识别的周期中的至少一个软链路被破坏。 如果一个周期没有软链接,则提供指示该周期不能被破坏的通知。 在每个识别的周期中识别至少一个软链路包括:对于循环中的每个链路,确定依赖和支持的库; 以及确定支持库中的一个或多个功能是否需要初始化依赖库。

    PARALLEL DLL TREE INITIALIZATION
    4.
    发明申请
    PARALLEL DLL TREE INITIALIZATION 有权
    并行DLL树初始化

    公开(公告)号:US20080244551A1

    公开(公告)日:2008-10-02

    申请号:US11693102

    申请日:2007-03-29

    IPC分类号: G06F9/44

    CPC分类号: G06F9/445

    摘要: A parallel processing method and apparatus for initializing libraries is disclosed. Libraries for an application are identified, an initialization order for the libraries is determined, and the libraries are initialized in asynchronous stages. The initialization order is determined by forming a library tree of the libraries' references and determining a load order for the references according to the levels of the references in the library tree. The asynchronous stages comprise a loading stage that includes a load queue, a snapping stage that includes a snap queue, and an initializing stage that includes an initialize queue.

    摘要翻译: 公开了一种用于初始化库的并行处理方法和装置。 识别应用程序的库,确定库的初始化顺序,并以异步阶段初始化库。 初始化顺序通过形成库引用的库树来确定,并根据库树中引用的级别确定引用的加载顺序。 异步阶段包括加载阶段,其包括加载队列,包括快照队列的捕捉阶段以及包括初始化队列的初始化阶段。

    One-time initialization
    5.
    发明授权

    公开(公告)号:US09600325B2

    公开(公告)日:2017-03-21

    申请号:US13106850

    申请日:2011-05-12

    IPC分类号: G06F9/46 G06F9/48

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.

    Cooperative DLL unload
    6.
    发明授权
    Cooperative DLL unload 失效
    合作DLL卸载

    公开(公告)号:US07865914B2

    公开(公告)日:2011-01-04

    申请号:US11693080

    申请日:2007-03-29

    IPC分类号: G06F9/44 G06F9/46 G06F12/00

    CPC分类号: G06F9/44563 G06F9/44594

    摘要: Loading and unloading a plurality of libraries on a computing device having a loader lock and internal and external counts for each library in the plurality of libraries is disclosed. The libraries assume an initialize state, followed by an initialized state, a pending unload state, and an unload state according to when the internal and external counts are incremented and decremented. When in the pending unload state, the functions of a library that include functions that require acquiring the loader lock exit, the internal count is decremented by one, and the loader lock is released. Prior to entering the pending unload state, a library may be placed into a reloadable state. A library in the reloadable state may be reloaded upon request until a timer times out. When the timer times out, the library in the reloadable state transitions into the pending unload state.

    摘要翻译: 公开了在具有加载器锁定的计算设备上加载和卸载多个库,并且对多个库中的每个库的内部和外部计数进行加载和卸载。 这些库根据内部和外部计数增加和减少的时间,假定初始化状态,后跟初始化状态,待处理卸载状态和卸载状态。 当处于待处理卸载状态时,包含需要获取加载器锁定退出的函数的库的函数将内部计数递减1,并释放加载程序锁。 在进入待处理卸载状态之前,库可能被置于可重新加载的状态。 可重新加载状态的库可以根据请求重新加载,直到定时器超时。 当定时器超时时,可重新加载状态的库转换为待处理的卸载状态。

    One-time initialization
    7.
    发明授权
    One-time initialization 有权
    一次初始化

    公开(公告)号:US09582316B2

    公开(公告)日:2017-02-28

    申请号:US13106836

    申请日:2011-05-12

    IPC分类号: G06F9/46 G06F9/48

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.

    摘要翻译: 本发明的方面旨在为程序在多线程环境中执行数据项的一次初始化提供安全和有效的方式。 根据一个实施例,提供了一种允许程序执行可被多个线程访问的数据项的同步初始化的方法。 更具体地说,该方法包括从当前线程接收初始化数据项的请求。 响应于接收到请求,该方法确定当前线程是否是尝试初始化数据项的第一线程。 如果当前线程是尝试初始化数据项的第一个线程,则该方法会强制执行互斥,并阻止其他尝试初始化由并发线程创建的数据项。 然后,允许当前线程执行程序提供的程序代码来初始化数据项。

    Parallel DLL tree initialization
    8.
    发明授权
    Parallel DLL tree initialization 有权
    并行DLL树初始化

    公开(公告)号:US08707283B2

    公开(公告)日:2014-04-22

    申请号:US11693102

    申请日:2007-03-29

    IPC分类号: G06F9/44

    CPC分类号: G06F9/445

    摘要: A parallel processing method and apparatus for initializing libraries is disclosed. Libraries for an application are identified, an initialization order for the libraries is determined, and the libraries are initialized in asynchronous stages. The initialization order is determined by forming a library tree of the libraries' references and determining a load order for the references according to the levels of the references in the library tree. The asynchronous stages comprise a loading stage that includes a load queue, a snapping stage that includes a snap queue, and an initializing stage that includes an initialize queue.

    摘要翻译: 公开了一种用于初始化库的并行处理方法和装置。 识别应用程序的库,确定库的初始化顺序,并以异步阶段初始化库。 初始化顺序通过形成库引用的库树来确定,并根据库树中引用的级别确定引用的加载顺序。 异步阶段包括加载阶段,其包括加载队列,包括快照队列的捕捉阶段以及包括初始化队列的初始化阶段。

    DYNAMIC DLL CYCLE RESOLUTION
    9.
    发明申请
    DYNAMIC DLL CYCLE RESOLUTION 有权
    动态DLL循环分辨率

    公开(公告)号:US20080244550A1

    公开(公告)日:2008-10-02

    申请号:US11693092

    申请日:2007-03-29

    IPC分类号: G06F9/44

    CPC分类号: G06F9/44521

    摘要: Deterministically resolving cycles in a library tree is disclosed. Resolving cycles supports certain processes such as safe library initialization. Cycles in the library tree are identified; at least one soft link in each identified cycle is identified; and the at least one soft link in each identified cycle is broken. If a cycle has no soft links, notification is provided indicating that the cycle cannot be broken. Identifying at least one soft link in each identified cycle comprises, for each link in the cycle, determining the dependent and supporting libraries; and determining if one or more functions in the supporting library are required for initializing the dependent library.

    摘要翻译: 公开了确定性地解析库树中的循环。 解决循环支持某些进程,例如安全库初始化。 识别图书馆树中的周期; 识别每个识别周期中的至少一个软链路; 并且每个识别的周期中的至少一个软链路被破坏。 如果一个周期没有软链接,则提供指示该周期不能被破坏的通知。 在每个识别的周期中识别至少一个软链路包括:对于循环中的每个链路,确定依赖和支持的库; 以及确定支持库中的一个或多个功能是否需要初始化依赖库。

    ONE-TIME INITIALIZATION
    10.
    发明申请

    公开(公告)号:US20110219379A1

    公开(公告)日:2011-09-08

    申请号:US13106836

    申请日:2011-05-12

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4806

    摘要: Aspects of the present invention are directed at providing safe and efficient ways for a program to perform a one-time initialization of a data item in a multi-threaded environment. In accordance with one embodiment, a method is provided that allows a program to perform a synchronized initialization of a data item that may be accessed by multiple threads. More specifically, the method includes receiving a request to initialize the data item from a current thread. In response to receiving the request, the method determines whether the current thread is the first thread to attempt to initialize the data item. If the current thread is the first thread to attempt to initialize the data item, the method enforces mutual exclusion and blocks other attempts to initialize the data item made by concurrent threads. Then, the current thread is allowed to execute program code provided by the program to initialize the data item.