Sha256: cebcf31f52424d1211ec56acc78d25248ac8f32b70bbc86c172d886c4923b498
Contents?: true
Size: 771 Bytes
Versions: 1
Compression:
Stored size: 771 Bytes
Contents
require 'SysVIPC' class Localjob class Channel def shift raise "SysV adapter does not support multiple queues" if @queues.size > 1 @queues.first.shift end end class SysvAdapter include SysVIPC attr_reader :mqueue def initialize(name) @filename = "/tmp/#{name}" File.open(@filename, "w") { } key = ftok(@filename, 0) @mq = MessageQueue.new(key, IPC_CREAT | 0600) end def receive @mq.receive(0, 8024) end def send(message) @mq.send(1, message) end def size @mq.ipc_stat.msg_qnum end def destroy File.delete(@filename) @mq.rm end private def fix_queue_name(name) name.start_with?('/') ? name : "/#{name}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
localjob-0.1.0 | lib/localjob/sysv_adapter.rb |