Yes, forking is done using the OS. I was thinking of a workaround with go On Sunday, September 16, 2018 at 2:24:03 PM UTC+5:30, Lei Ni wrote: > > I am trying to do the same, but according to my understanding you can't do > that in Golang. When fork is called on Linux, the duplicated child process > is created with only one thread - the thread that called fork. This > basically means your child process no longer has a working Go > runtime/environment. > > > > Cheers, > > Lei > > On Sunday, September 16, 2018 at 11:44:18 AM UTC+8, Kasun Vithanage wrote: >> >> I'm developing a *redis **like *server with Go. You can see the code >> repo here <https://github.com/kasvith/kache>. >> I need to dump my *Mutex Protected map* to a *file*. Simply *snapshot >> data to a file*. >> >> In redis, it take snapshots of data using a fork as described in here >> <http://oldblog.antirez.com/post/redis-persistence-demystified.html>. >> >> // DB holds a thread safe struct for store data >> type DB struct { >> file map[string]*DataNode >> mux sync.RWMutex >> } >> >> Here is my map. >> >> Is there a possibility in go to do this? I want to be my original DB to >> be lock free and non touched while the persistent carries on. >> >
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.