[Ruby] memcache-client issue
Joe Van Dyk
joevandyk at gmail.com
Thu Oct 5 14:21:46 PDT 2006
--- /usr/lib/ruby/gems/1.8/gems/memcache-client-1.1.0/lib/memcache.rb
2006-10-04 09:32:58.000000000 -0700
+++ /usr/lib/ruby/gems/1.8/gems/memcache-client-1.1.0/lib/memcache.rb.new
2006-10-04 09:32:45.000000000 -0700
@@ -186,10 +186,16 @@ class MemCache
command = "set #{cache_key} 0 #{expiry}
#{marshaled_value.size}\r\n#{marshaled_value}\r\n"
begin
- @mutex.synchronize do
+ if @mutithread
+ @mutex.synchronize do
+ sock.write command
+ sock.gets
+ end
+ else
sock.write command
sock.gets
- end
+ end
+
rescue SystemCallError, IOError => err
server.close
raise MemCacheError, err.message
On 10/5/06, Joe Van Dyk <joevandyk at gmail.com> wrote:
> Hi,
>
> So, playing around with memcache. Installed the memcached-client gem.
> Started up a memcached server on the localhost.
>
> I created a MemCache object and tried to set some data in it. I got
> an error about nil not having a sychrnoized method on line 189 of
> /usr/lib/ruby/gems/1.8/gems/memcache-client-1.1.0/lib/memcache.rb.
>
> I didn't turn on the multithread attribute. From looking at the code,
> it looks like it doesn't check to see if multithread is on before
> using the @mutex variable. I guess it should, right?
>
More information about the Ruby
mailing list