Class: MutexSocketList
Overview
ソケット毎用のmutex
Instance Method Summary collapse
- #add(key) ⇒ Object
- #delete(key) ⇒ Object
-
#initialize ⇒ MutexSocketList
constructor
A new instance of MutexSocketList.
- #keys ⇒ Object
-
#synchronize(key) ⇒ Object
def [](key) raise(“not exist key(#key)”) if ! @msl_hash.has_key?(key) add(key) if @msl_hash.has_key?(key) @msl_hash end.
Constructor Details
#initialize ⇒ MutexSocketList
Returns a new instance of MutexSocketList.
5 6 7 |
# File 'lib/dango/mutex_socket_list.rb', line 5 def initialize() @msl_hash = Hash.new end |
Instance Method Details
#add(key) ⇒ Object
17 18 19 |
# File 'lib/dango/mutex_socket_list.rb', line 17 def add(key) @msl_hash[key] = Mutex.new end |
#delete(key) ⇒ Object
13 14 15 |
# File 'lib/dango/mutex_socket_list.rb', line 13 def delete(key) @msl_hash.delete(key) end |
#keys ⇒ Object
9 10 11 |
# File 'lib/dango/mutex_socket_list.rb', line 9 def keys() @msl_hash.keys end |
#synchronize(key) ⇒ Object
def [](key)
raise("not exist key(#{key})") if ! @msl_hash.has_key?(key)
add(key) if @msl_hash.has_key?(key)
@msl_hash[key]
end
27 28 29 30 31 32 33 34 |
# File 'lib/dango/mutex_socket_list.rb', line 27 def synchronize(key) raise("not exist key(#{key})") if ! @msl_hash.has_key?(key) ret = nil @msl_hash[key].synchronize do ret = yield end ret end |