Transaction Pipes and Threading

From: Jason Rothfuss <rothfuss_at_.....>
Date: Tue Dec 20 2005 - 09:39:09 PST
Hi John and ITC techies,

 

I was looking over the description of transaction pipes and was
wondering if the use of a preemptive threading package (like pthreads)
is intended with this API?

 

If the answer is "no", there is no need to continue reading.  If the
answer is "yes", I have a problem with the current definition of the
C-side API.  

 

I noticed in the example that the user's C-code calls:

 

svSetScope(hdlContext);

dpi_pipe_c_send(...);

...

svSetScope(hdlContext);

dpi_pipe_c_flush(...);

 

I assume that svSetScope() is called so that the dpi_pipe_c_send() and
dpi_pipe_c_flush() reaches the correct pipe.  The problem that I have is
that if you're using a preemptive threading package (like pthreads),
another thread could change the scope between the call to svSetScope()
and dpi_pipe_c_send(), therefore sending a message to the wrong
pipe/module.  I would suggest adding a svScope argument to the
dpi_pipe_c_* functions, so that the infrastructure will have a better
chance of ensuring that the message reaches the correct pipe.

 

Please let me know what you think.

 

Regards,

Jason

 

 

Jason Rothfuss
Cadence Verification Division


Cadence Design Systems, Inc.
16279 Laguna Canyon Road
Irvine, CA 92618 

Office:

 

+1 (949) 790-7181

Mobile:

 

+1 (310) 210-2754



rothfuss@cadence.com
www.cadence.com 

 

C a d e n c e <http://www.cadence.com> 

 
Received on Tue Dec 20 09:39:16 2005

This archive was generated by hypermail 2.1.8 : Tue Dec 20 2005 - 09:39:50 PST