Claims Analysis
Total Claims: 9
Claim 1
Independent Claim
187 words
A method for use in a multithread computer system employing a pre-existing shared library having a pre-existing function descriptor, a pointer to said function descriptor and a corresponding at least one function which is not multithread-safe when used in said system having a corresponding underlying call associated therewith exported from said library to render said shared library multithread-safe when used in said system, comprising: creating a wrapper for said function comprised of program code extending around instantiation of said underlying call said wrapper being responsive to a call corresponding to said underlying call, said creating including the steps of storing said pre-existing function descriptor therewithin, and creating a lock to said function; and rebinding said pre-existing shared library with said wrapper including the steps of creating a modified function descriptor including creating a pointer to said wrapper and creating a copy of said function descriptor with said pointer to said wrapper in said modified function descriptor being substituted for said pointer to said function in said function descriptor during said rebinding; and substituting a pointer to said modified pointer descriptor for said pointer to said function descriptor.
Claim 2
Independent Claim
187 words
A method for use in a multithread computer system employing a pre-existing shared library having a pre-existing function descriptor, a pointer to said function descriptor and a corresponding at least one function which is not multithread-safe when used in said system having a corresponding underlying call associated therewith exported from said library to render said shared library multithread-safe when used in said system, comprising: creating a wrapper for said function comprised of program code extending around instantiation of said underlying call said wrapper being responsive to a call corresponding to said underlying call, said creating including the steps of storing said pre-existing function descriptor therewithin, and creating a lock to said function; and rebinding said pre-existing shared library with said wrapper including the steps of creating a modified function descriptor including creating a pointer to said wrapper and creating a copy of said function descriptor with said pointer to said wrapper in said modified function descriptor being substituted for said pointer to said function in said function descriptor during said rebinding; and substituting a pointer to said modified pointer descriptor for said pointer to said function descriptor.
Claim 3
Dependent Claim
30 words
The method of claim 1 wherein calling said function before and after said rebinding invokes said pointer to said function descriptor and said pointer to said modified function descriptor, respectively.
Claim 4
Dependent Claim
19 words
The method of claim 2 wherein said function descriptor includes a pointer to a routine corresponding to said function.
Claim 5
Independent Claim
230 words
A method for modifying a multithread shared library computer system in which an underlying function call exported from said shared library invokes a pointer to a function descriptor which, in turn, invokes a pointer to a corresponding routine of said shared library thereby causing execution of said routine, whereby multithread safe use of said shared library is facilitated said method comprising: providing a wrapper including a lock being comprised of program code extending around instantiation of said underlying function call, said wrapper being responsive to a call corresponding to said underlying call and including a lock for said routine, said wrapper further including said function descriptor; providing a substitute function descriptor with a pointer to said wrapper; changing said pointer to said function descriptor into a pointer to said substitute function descriptor; invoking said pointer to said substitute function descriptor; invoking with said pointer to said substitute function descriptor said pointer to said wrapper; and invoking with said pointer to said wrapper execution of said wrapper including executing said routine from said function call sequentially through said substitute function descriptor and then through said wrapper including said function descriptor; executing a lock on said routine; invoking said pointer of said function descriptor in said wrapper to said routine thereby causing its execution; and unlocking said lock on said routine in response to a return to said wrapper from said routine.
Claim 6
Independent Claim
230 words
A method for modifying a multithread shared library computer system in which an underlying function call exported from said shared library invokes a pointer to a function descriptor which, in turn, invokes a pointer to a corresponding routine of said shared library thereby causing execution of said routine, whereby multithread safe use of said shared library is facilitated said method comprising: providing a wrapper including a lock being comprised of program code extending around instantiation of said underlying function call, said wrapper being responsive to a call corresponding to said underlying call and including a lock for said routine, said wrapper further including said function descriptor; providing a substitute function descriptor with a pointer to said wrapper; changing said pointer to said function descriptor into a pointer to said substitute function descriptor; invoking said pointer to said substitute function descriptor; invoking with said pointer to said substitute function descriptor said pointer to said wrapper; and invoking with said pointer to said wrapper execution of said wrapper including executing said routine from said function call sequentially through said substitute function descriptor and then through said wrapper including said function descriptor; executing a lock on said routine; invoking said pointer of said function descriptor in said wrapper to said routine thereby causing its execution; and unlocking said lock on said routine in response to a return to said wrapper from said routine.
Claim 7
Dependent Claim
36 words
The method of claim 4 wherein said lock and said unlocking precludes and permits, respectively, execution of said routine from a subsequent said function call from another of said multiple threads while said routine is executing.
Claim 8
Independent Claim
206 words
A system for use in a multithread computer system employing a pre-existing shared library having a pre-existing function descriptor, a pointer to said function descriptor, and a corresponding at least one function which is not multithread-safe when used in said system having a corresponding underlying call associated therewith exported from said library to render said shared library multithread-safe when used in said system, comprising: means for creating a wrapper for said function comprised of program code extending around instantiation of said underlying call, said wrapper being responsive to a call corresponding to said underlying call, said means for creating a wrapper further including means for storing said pre-existing function descriptor therewithin; and means for creating a lock to said function; and means for rebinding said pre-existing shared library with said wrapper said means for rebinding including means for creating a modified function descriptor including means for creating a pointer to said wrapper and means for creating a copy of said function descriptor with said pointer to said wrapper in said modified function descriptor, being substituted for said pointer to said function in said function descriptor during said rebinding; and means for substituting a pointer to said modified pointer descriptor for said pointer to said function descriptor.
Claim 9
Independent Claim
206 words
A system for use in a multithread computer system employing a pre-existing shared library having a pre-existing function descriptor, a pointer to said function descriptor, and a corresponding at least one function which is not multithread-safe when used in said system having a corresponding underlying call associated therewith exported from said library to render said shared library multithread-safe when used in said system, comprising: means for creating a wrapper for said function comprised of program code extending around instantiation of said underlying call, said wrapper being responsive to a call corresponding to said underlying call, said means for creating a wrapper further including means for storing said pre-existing function descriptor therewithin; and means for creating a lock to said function; and means for rebinding said pre-existing shared library with said wrapper said means for rebinding including means for creating a modified function descriptor including means for creating a pointer to said wrapper and means for creating a copy of said function descriptor with said pointer to said wrapper in said modified function descriptor, being substituted for said pointer to said function in said function descriptor during said rebinding; and means for substituting a pointer to said modified pointer descriptor for said pointer to said function descriptor.