70 lines · 2.2 KB · Go
RawDownload
// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file. package os import (	"runtime"	"sync/atomic"	"syscall") // Process stores the information about a process created by StartProcess.type Process struct {	Pid    int	handle uintptr // handle is accessed atomically on Windows	isdone uint32  // process has been successfully waited on, non zero if true} func newProcess(pid int, handle uintptr) *Process {	p := &Process{Pid: pid, handle: handle}	runtime.SetFinalizer(p, (*Process).Release)	return p} func (p *Process) setDone() {	atomic.StoreUint32(&p.isdone, 1)} func (p *Process) done() bool {	return atomic.LoadUint32(&p.isdone) > 0} // ProcAttr holds the attributes that will be applied to a new process// started by StartProcess.type ProcAttr struct {	// If Dir is non-empty, the child changes into the directory before	// creating the process.	Dir string	// If Env is non-nil, it gives the environment variables for the	// new process in the form returned by Environ.	// If it is nil, the result of Environ will be used.	Env []string	// Files specifies the open files inherited by the new process.  The	// first three entries correspond to standard input, standard output, and	// standard error.  An implementation may support additional entries,	// depending on the underlying operating system.  A nil entry corresponds	// to that file being closed when the process starts.	Files []*File 	// Operating system-specific process creation attributes.	// Note that setting this field means that your program	// may not execute properly or even compile on some	// operating systems.	Sys *syscall.SysProcAttr} // A Signal represents an operating system signal.// The usual underlying implementation is operating system-dependent:// on Unix it is syscall.Signal.type Signal interface {	String() string	Signal() // to distinguish from other Stringers} // Getpid returns the process id of the caller.func Getpid() int { return syscall.Getpid() } // Getppid returns the process id of the caller's parent.func Getppid() int { return syscall.Getppid() }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t