Class: Session
- Inherits:
-
Object
- Object
- Session
- Defined in:
- lib/jiji/util/block_to_session.rb
Overview
ブロックを渡して処理を行なうAPIを セッション風に使えるようにする
Defined Under Namespace
Classes: Request
Instance Method Summary collapse
-
#close ⇒ Object
セッションを破棄する.
-
#initialize ⇒ Session
constructor
A new instance of Session.
-
#request(&block) ⇒ Object
リクエストを送る.
Constructor Details
#initialize ⇒ Session
Returns a new instance of Session.
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/jiji/util/block_to_session.rb', line 7 def initialize @alive = true @alive_mutex = Mutex.new @q = Queue.new @t = Thread.fork { yield proc {|*args| while( @alive_mutex.synchronize { @alive } ) req = @q.pop req.call( *args ) if req end } } end |
Instance Method Details
#close ⇒ Object
セッションを破棄する
28 29 30 31 32 33 34 |
# File 'lib/jiji/util/block_to_session.rb', line 28 def close @alive_mutex.synchronize { @alive = false } @q.push nil @t.join end |