İçeriğe geç

Sızdırılan Eşzamanlılık Tutamacı (ARCH6085)

Anahtar ruby.performance.leaked-concurrency-handle · Önem warning · Kategori performance

Bir kilit lock ile alınıp blok formu kullanılmadan tutulursa, bir istisna durumunda asla serbest bırakılmaz ve kilitlenme oluşur. Kilidi blok formuyla yönetin.

def increment(mutex, counter)
mutex.lock
counter.value += 1
mutex.unlock
end
def increment(mutex, counter)
mutex.synchronize do
counter.value += 1
end
end

Kilitleri synchronize blok formuyla alın; iş parçacıklarını sınırlı bir ömürle başlatın ve join edin.