Patent ID: 8819700

Claim:
A method for maintaining synchronous communication between separate threads in computer executable program code, comprising: allocating a block of memory, configured for bi-directional communication between a first execution thread and a second execution thread of a computer program; populating the block of memory with data configured to represent a function call by the first execution thread, the data configured to represent the function call comprising a global sequence number; blocking further execution of the first execution thread; reading the data configured to represent a function call from the block of memory by the second execution thread; executing the function call; populating the block of memory with function output data the output data including a reciprocal global sequence number; reading the function output data from the block of memory by the first execution thread; verifying that the reciprocal global sequence number is a negative representation of the global sequence number; and resuming execution of the first execution thread, wherein the data configured to represent a function call comprises computer readable program code comprising a plurality of data elements, at least one of the data elements represents a memory address pointer to a function.