[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: reentrantcy?



On Sunday, November 20, 2011 03:01:57 AM Peter Samuelson wrote:
> [Paul Elliott]
> 
> > B
> > 
> > > If all linkings are shared, it is my understanding that the global
> > > state of the multiple-linked library would be shared by all
> > > references.
> > 
> > Statement A and B above seem to contradict each other.
> > 
> > If global state means global variables, my experiments show that B is
> > not true but A is true.
> 
> No, what he meant is: if you link to libraries 'foo' and 'bar', and
> library 'foo' also happens to use 'bar', then at runtime there will be
> only one copy of 'bar' in your process address space.  If library 'bar'
> is not reentrant and has shared state, this shared state will affect
> functionality used by both your base program and library 'foo'.
> 
> This is all within a single process.  Multiple processes don't affect
> each other unless, as others have noted, you explicitly set up shared
> memory and the like.

Ok I understand what you meant now.

I take it I am correct that non-reentrant libraries are allowed, and that non-
reentrantcy is no reason to link staticly?

Thank You for your answers.


-- 
Paul Elliott                               1(512)837-1096
pelliott@BlackPatchPanel.com               PMB 181, 11900 Metric Blvd Suite J
http://www.free.blackpatchpanel.com/pme/   Austin TX 78758-3117

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: