Removed Mutex usage from XML::Text

Instead of trying to make this class thread-safe I'm going with the
option of simply declaring it unsafe to mutate instances of XML::Text
while reading it in parallel. This removes the need for Mutex
allocations and keeps the code simple.

Fixes #82
This commit is contained in:
Yorick Peterse 2015-03-21 01:27:00 +01:00
parent c647f064b5
commit 31e93e54f9
1 changed files with 6 additions and 12 deletions

View File

@ -8,7 +8,6 @@ module Oga
def initialize(*args)
super
@mutex = Mutex.new
@decoded = false
end
@ -16,11 +15,8 @@ module Oga
# @param [String] value
#
def text=(value)
# In case of concurrent text/text= calls.
@mutex.synchronize do
@decoded = false
@text = value
end
@decoded = false
@text = value
end
##
@ -30,12 +26,10 @@ module Oga
# @return [String]
#
def text
@mutex.synchronize do
unless @decoded
decoder = html? ? HTML::Entities : Entities
@text = decoder.decode(@text)
@decoded = true
end
unless @decoded
decoder = html? ? HTML::Entities : Entities
@text = decoder.decode(@text)
@decoded = true
end
return @text