func Exit(c int) {
	key.Destroy()
	snapshot := buffers.copy()  
	for _, b := range snapshot {
		b.Destroy()
	}
	os.Exit(c)
}
/*
Exit terminates the process with a specified exit code but securely wipes and cleans up sensitive data before doing so.
package core
import (
	"fmt"
	"os"
	"github.com/awnumar/memcall"
)
func Purge() {
	var opErr error
	func() {
		key.Lock()
		defer key.Unlock()
		snapshot := buffers.flush()
		for _, b := range snapshot {
			if err := b.destroy(); err != nil {
				if opErr == nil {
					opErr = err
				} else {
					opErr = fmt.Errorf("%s; %s", opErr.Error(), err.Error())
				}
				b.Lock()
				defer b.Unlock()
				if !b.mutable {
					if err := memcall.Protect(b.inner, memcall.ReadWrite()); err != nil {
						fmt.Fprintf(os.Stderr, "!WARNING: failed to wipe immutable data at address %p", &b.data)
						continue  
					}
				}
				Wipe(b.data)
			}
		}
	}()
	key.Destroy()  
	key = NewCoffer()
	if opErr != nil {
		panic(opErr)
	}
}