46 lines
		
	
	
		
			717 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			717 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
lib LibC
 | 
						|
  WNOHANG = 0x00000001
 | 
						|
 | 
						|
  @[ReturnsTwice]
 | 
						|
  fun fork : PidT
 | 
						|
  fun getpgid(pid : PidT) : PidT
 | 
						|
  fun kill(pid : PidT, signal : Int) : Int
 | 
						|
  fun getpid : PidT
 | 
						|
  fun getppid : PidT
 | 
						|
  fun exit(status : Int) : NoReturn
 | 
						|
 | 
						|
  ifdef x86_64
 | 
						|
    alias ClockT = UInt64
 | 
						|
  else
 | 
						|
    alias ClockT = UInt32
 | 
						|
  end
 | 
						|
 | 
						|
  SC_CLK_TCK = 3
 | 
						|
 | 
						|
  struct Tms
 | 
						|
    utime : ClockT
 | 
						|
    stime : ClockT
 | 
						|
    cutime : ClockT
 | 
						|
    cstime : ClockT
 | 
						|
  end
 | 
						|
 | 
						|
  fun times(buffer : Tms*) : ClockT
 | 
						|
  fun sysconf(name : Int) : Long
 | 
						|
end
 | 
						|
 | 
						|
class Process
 | 
						|
  def self.exit(status = 0)
 | 
						|
    LibC.exit(status)
 | 
						|
  end
 | 
						|
 | 
						|
  def self.pid
 | 
						|
    LibC.getpid
 | 
						|
  end
 | 
						|
 | 
						|
  def self.getpgid(pid : Int32)
 | 
						|
    ret = LibC.getpgid(pid)
 | 
						|
    raise Errno.new(ret) if ret < 0
 | 
						|
    ret
 | 
						|
  end
 | 
						|
end
 |