class EnClient::TaskQueue

Public Class Methods

new() click to toggle source
# File usr/lib/evernote-mode/enclient.rb, line 297
def initialize
  @cond = ConditionVariable.new
  @mutex = Mutex.new
  @queue = []
end

Public Instance Methods

pop() click to toggle source
# File usr/lib/evernote-mode/enclient.rb, line 317
def pop
  @mutex.synchronize{
    while @queue.size == 0
      @cond.wait(@mutex)
    end
    task = @queue.shift
  }
end
push(task) click to toggle source
# File usr/lib/evernote-mode/enclient.rb, line 303
def push(task)
  @mutex.synchronize{
    @queue.push task
    @cond.signal
  }
end
push_to_front(task) click to toggle source
# File usr/lib/evernote-mode/enclient.rb, line 310
def push_to_front(task)
  @mutex.synchronize{
    @queue.unshift task
    @cond.signal
  }
end