# File lib/memcache.rb, line 324 def add(key, value, expiry = 0, raw = false) raise MemCacheError, "Update of readonly cache" if @readonly server, cache_key = request_setup key socket = server.socket value = Marshal.dump value unless raw command = "add #{cache_key} 0 #{expiry} #{value.size}\r\n#{value}\r\n" begin @mutex.lock if @multithread socket.write command socket.gets rescue SocketError, SystemCallError, IOError => err server.close raise MemCacheError, err.message ensure @mutex.unlock if @multithread end end