Hi All,

I've got a problem. Appologies if this too far OT -
I'm not sure where else to post!

I have wrapped a C linux library using perl-xs. The
library provides 

 - an init function (where a C struct is initialised) 
 - a do function (where actions are performed using
the C struct)
 - a free function (where the C struct is freed).

I have 30 perl slaves (processes) that each use their
own instance of the C struct in memory. 

The problem is that each struct requires around 30 MB
(30 *30 = a lot). 

Now I would normally initialise the struct in the
parent perl controlling thread and pass it too each
slave, however I do not have control of the parent
thread (at least not withour hacking someone else's
source code).

So, the question is, how can I share the initialised C
struct between all threads? I've had a couple of
ideas:

- write a server that maintains a pointer to the
struct.
- keep the struct in a file :/ ?!
- somehow cache the struct between processes within
the C side of the wrapper - how could I do this?

Any ideas?

Thanks for any help on this,

rotis23

__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools

Reply via email to