Russian Qt Forum

Qt => Базы данных => Тема начата: majatu от Июнь 09, 2009, 12:00



Название: Таймаут на запрос
Отправлено: majatu от Июнь 09, 2009, 12:00
Можно ли поставить таймаут на запрос? как это сделать?

while(query.next)
{
 таймаут
 ...
 дальнейшие операции
}


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 09, 2009, 16:37
QSemaphore sem(0);
sem.tryAcquire( 1, 2000 ); // Задержка на 2 сек


Название: Re: Таймаут на запрос
Отправлено: lit-uriy от Июнь 09, 2009, 17:35
ему не задержку надо.
А "time out"="время вышло"

Как я понял приведён псевдокод, да и то неудачно.

Т.е. нужно работать дальше если запрос не выполнился за положенное время.
majatu, я правильно понял?


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 09, 2009, 17:47
В любом случае использовать либо mutex-ы, либо QTimer::singleShot.
Ну или я вопроса не понял


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 09, 2009, 17:50
Судя по псевдокоду требуется как раз что-то типа sleep-а


Название: Re: Таймаут на запрос
Отправлено: pastor от Июнь 09, 2009, 20:15
Если действительно нужно что-то вроде слипа, то тогда курить в сторону QEventLoop (поиск по форуму поможет)


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 10, 2009, 09:40
На уровне операционки sleep работает как приостановка потока (Это я про виндоус, возможно в других ОС тоже самое). А как это вызвать из юзерспейса - неважно. Будь то мьютексы или что-то из QEventLoop-а или QThread::sleep  Главное, чтобы не while( true ) { do_nothing(); }
imho


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 10, 2009, 09:41
Кстати, больше поможет поиск не по форуму, а по исходникам. Благо в Qt они очень легко читаются.


Название: Re: Таймаут на запрос
Отправлено: pastor от Июнь 10, 2009, 13:11
sleep, мютексы и прочее приведут к замораживанию интерфейса, что не есть гуд. Противоположная ситуация с QEventLoop. Поиск по форуму как раз поможет, так как подобные темы уже неоднократно расжовывались.


Название: Re: Таймаут на запрос
Отправлено: roman.ks от Июнь 11, 2009, 10:24
А кто сказал, что данный цикл крутится в том же потоке, что и eventLoop? А если это так, то это плохая практика.  И вообще, чтобы лишних вопросов не возникало, надо уточнить задачу. Что имелось в виду под словом "таймаут"?


Название: Re: Таймаут на запрос
Отправлено: pastor от Июнь 11, 2009, 11:36
И вообще, чтобы лишних вопросов не возникало, надо уточнить задачу. Что имелось в виду под словом "таймаут"?

согласен. Ждем дополнений со стороны автора топика