Patent ID: 7546612

Claim:
A system for integrating an x window visualization toolkit with a JAVA application, the system comprising a computer program stored on a computer readable storage medium that when executed by a processor causes the processor to generate a JAVA application comprising: a JAVA application thread that includes a call to an X Window visualization toolkit; a JAVA process thread that comprises an X Window X event loop; at least one context object configured to synchronize the X Window X event loop with the JAVA application to prevent concurrency related data corruption when a call to the X Window visualization toolkit is made by the JAVA application thread; wherein the JAVA application thread further comprises: (a) a plurality of JAVA functions including a first function configured to pause execution of the X event loop by causing a data element to be communicated to a first read socket of the X event loop and a second function configured to resume execution of the X event loop by causing another data element to be communicated to a second read socket of the X event loop; (b) a plurality of application threads and a class defining JAVA methods including a first JAVA method configured to mirror the first function that pauses execution of the X event loop for each JAVA application thread and a second JAVA method configured to mirror the second function that resumes execution of the X event loop for each JAVA application thread at a time from making a call to the visualization toolkit; and (c) a member variable of the class that is utilized to determined which JAVA application thread may be permitted to make a call to the visualization toolkit, wherein the member variable is configured to be set to at least one of: (1) a first value indicating that one of the plurality of JAVA functions of one of the JAVA application threads has been called and another one of the plurality of JAVA functions of the one of the JAVA application threads has not yet been called; and (2) a second value indicating that both of the JAVA functions of the one of the JAVA application threads have been called.