|
Packit |
437b5e |
-- limit.lua
|
|
Packit |
437b5e |
-- Limiting the CPU time used by a child process;
|
|
Packit |
437b5e |
-- it will be killed and we don't get the final message
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local posix = require 'posix'
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
posix.setrlimit ('cpu',1,1)
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local t = posix.times 'elapsed'
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
local pid = posix.fork ()
|
|
Packit |
437b5e |
if pid == 0 then -- child
|
|
Packit |
437b5e |
print 'start'
|
|
Packit |
437b5e |
for i = 1, 1e9 do
|
|
Packit |
437b5e |
end
|
|
Packit |
437b5e |
print 'finish'
|
|
Packit |
437b5e |
else
|
|
Packit |
437b5e |
print (posix.wait (pid))
|
|
Packit |
437b5e |
print (posix.times 'elapsed' - t)
|
|
Packit |
437b5e |
end
|