# A concurrent variant to the standard `SequenceRead`
abstract class ConcurrentSequenceRead[E]
super ConcurrentCollection[E]
super SequenceRead[E]
redef type REAL: SequenceRead[E]
redef fun ==(o)
do
mutex.lock
var r = real_collection == o
mutex.unlock
return r
end
redef fun [](index)
do
mutex.lock
var r = real_collection[index]
mutex.unlock
return r
end
redef fun hash
do
mutex.lock
var r = real_collection.hash
mutex.unlock
return r
end
redef fun index_of(index)
do
mutex.lock
var r = real_collection.index_of(index)
mutex.unlock
return r
end
redef fun index_of_from(index, from)
do
mutex.lock
var r = real_collection.index_of_from(index, from)
mutex.unlock
return r
end
redef fun iterator_from(index)
do
mutex.lock
var r = real_collection.iterator_from(index)
mutex.unlock
return r
end
redef fun last
do
mutex.lock
var r = real_collection.last
mutex.unlock
return r
end
redef fun last_index_of(e)
do
mutex.lock
var r = real_collection.last_index_of(e)
mutex.unlock
return r
end
redef fun last_index_of_from(e, from)
do
mutex.lock
var r = real_collection.last_index_of_from(e, from)
mutex.unlock
return r
end
redef fun reverse_iterator
do
mutex.lock
var r = real_collection.reverse_iterator
mutex.unlock
return r
end
redef fun reverse_iterator_from(from)
do
mutex.lock
var r = real_collection.reverse_iterator_from(from)
mutex.unlock
return r
end
end
lib/pthreads/concurrent_collections.nit:181,1--275,3