The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Sep. 28, 1999
Filed:
Jul. 22, 1997
National Instruments Corporation, Austin, TX (US);
Abstract
A system and method which enables a plurality of threads in a multithreaded application to each access per-thread copies of GPIB global variables in a GPIB system. According to the present invention, the plurality of threads use a special set of thread-local GPIB calls to perform the per-thread accesses. Whenever a thread first makes a GPIB call, the GPIB driver software begins maintaining a private copy of all of the GPIB global variables for the respective thread. The driver preferably maintains a separate private copy for each thread. Later, when the thread desires to access a per-thread copy of one or more global variables, the thread uses a thread-local GPIB call to perform the per-thread access. The thread-local functions used to access these per-thread GPIB global variables are ThreadIbsta, ThreadIberr, ThreadIbcnt, and ThreadIbcntl. When the GPIB driver level software receives a call to a thread-local function to access a per-thread global variable, the software determines the appropriate value for the respective thread and returns the per-thread value to the respective requesting thread. In one embodiment, the thread can specify a memory area where the per-thread global variables are maintained. In this manner, the thread can access the per-thread global variables directly from the specified memory area, without having to make thread-local function calls.