From: Knutaf Date: 2009-07-23T23:14:18+09:00 Subject: [ruby-core:24529] Re: Proposal: savepoints I have code doing exactly #2. The same magic I used on Linux (not fork, but sending all the fds to the new process) doesn't work as is on Windows. I had to open a bug for it (http://redmine.ruby-lang.org/issues/show/1644), but if it's fixed, it ought to work in the same way. -----Original Message----- From: Urabe Shyouhei [mailto:shyouhei@ruby-lang.org] Sent: Thursday, July 23, 2009 7:02 AM To: ruby-core@ruby-lang.org Subject: [ruby-core:24526] Re: Proposal: savepoints Roger Pack wrote: >> sp = ObjectSpace.savepoint > > You could implement this using fork...I think? Only when you have a fork system call, yes. I guess what Yehuda really need is a In-Service Software Update; where a process image should be refreshed while its in-service sockets to remain open. What is difficult here is that a socket entity is in kernel, not in that process in question. So you have to whether (1) refresh that process image in a magical way, or (2) spawn a new process and send sockets to it in a magical way. Anyway some magic cannot be avoided, and a fork system call of POSIX semantics is a kind of magic used in (2). Of course, such a magic is not always available on Windows.