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.


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...