У меня есть плагин, где я хочу, чтобы браузер не закрывался, так как я сохраняю некоторые данные, которые занимают неизвестное количество времени.
data_ready = false;
data_ready = saveData(); //using a random amount of time as the user has to specify a location
boost::unique_lock<boost::mutex> lock(mut);
while(!data_ready) {
cond.wait(lock);
}
Запрашивается место для сохранения данных, но сразу после этого происходит сбой, который, как мне кажется, является блокировкой.
Как я могу заставить браузер ждать, пока пользователь закончит сохранение данных?
Ты не можешь Вы должны убедиться, что плагин никогда не блокирует основной поток и что все запущенные вами потоки вовремя закрываются. Поздравляем и добро пожаловать в чудесный мир плагинов для браузера =]
Некоторые люди обошли это, запустив внешнее приложение, которое выполняет реальную работу, которая не закроется, пока не будет сделано.
Других решений пока нет …