Module: Proceso

Extended by:
Proceso
Included in:
Proceso
Defined in:
lib/proceso.rb,
lib/proceso/pid.rb,
lib/proceso/version.rb,
lib/proceso/middleware.rb,
ext/proceso/pid.c,
ext/proceso/proceso.c

Defined Under Namespace

Classes: Middleware, PID

Constant Summary collapse

VERSION =
"0.1.1"
NCPU =
INT2NUM(rb_hw_ncpu())

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.pidsObject

Process PIDs



11
12
13
14
15
16
17
18
19
20
# File 'ext/proceso/proceso.c', line 11

static VALUE
proceso__pids(VALUE self) {
  int *pids = rb_process_list();
  VALUE processes = rb_ary_new();
  int i;
  for(i = 0; i < sizeof(pids); i++) {
    rb_ary_push(processes, INT2NUM(pids[i]));
  }
  return processes;
}

Instance Method Details

#currentObject



21
22
23
# File 'lib/proceso.rb', line 21

def current
  @current ||= Proceso::PID.new(Process.pid)
end

#pidsObject



8
9
10
11
12
# File 'lib/proceso.rb', line 8

def pids
  Dir["/proc/*"].select do
    |x| x =~ /\/\d+$/
  end.map(&File.method(:basename)).map(&:to_i)
end

#processesObject



15
16
17
18
19
# File 'lib/proceso.rb', line 15

def processes
  pids.map do |i|
    Proceso::PID.new(i)
  end
end