Когда ты берёшь aliveLock на чтение - как это тебя защищает от того, что таблица не удалена? Ты ведь не делаешь соответствующей проверки.