http://qs321.pair.com?node_id=761115


in reply to Embedded Perl - Saving State?

I'm going to go out on a limb here and say it'd be really hard. Think about all the stuff that's in Perl's memory space - pointers to heap storage, filehandles, dynamically loaded libraries, mmap'd files, network sockets, and much more. Serializing a Perl process and restarting it is no more likely to work than any other C app, by which I mean not likely at all.

If you're determined to give it a try anyway you could look at how CORE::dump() and the -u option work. You can't use them directly since you'd cause your C app to dump core that way, but it might still be useful. You've got a harder job to do that CORE::dump() since you somehow have to figure out which memory to dump and when you reload you've got to deal with the fact that your memory space isn't necessarily the same.

-sam

Replies are listed 'Best First'.
Re^2: Embedded Perl - Saving State?
by McD (Chaplain) on May 01, 2009 at 02:59 UTC
    I'm going to go out on a limb here and say it'd be really hard.

    Yeah. That's kind of the conclusion I'd come to, but I was hoping someone might have some firsthand knowledge.

    API calls in proto.h like perl_clone(), Perl_get_context() and Perl_set_context() made me think it wasn't a total pipe dream...