Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
А вы знаете, что IBAPI не совместимо с APC из WinApi ? В отладчике выяснилось, что APC вылетает из функции select, которую использует внутри gds32.dll. Любой код вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Попадает в точку 1 перед точкой 2. Причина этого описана в msdn: ----------------------------------------------------------- http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx Note When issuing a blocking Winsock call such as select with the timeout parameter set to NULL, Winsock may need to wait for a network event before the call can complete. Winsock performs an alertable wait in this situation, which can be interrupted by an asynchronous procedure call (APC) scheduled on the same thread. Issuing another blocking Winsock call inside an APC that interrupted an ongoing blocking Winsock call on the same thread will lead to undefined behavior, and must never be attempted by Winsock clients. ----------------------------------------------------------- Печально всё это и лечению не подлежит. Даже если переделать gds32.dll то редистрибьютить его нереально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 15:03 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Печально всё это и лечению не подлежит. Да, у современной медицины нет средства против анацефалии. Те, у кого есть мозг, догадаются задействовать третий параметр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 15:25 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Какой ещё 3тий параметр? Это грабли, на которые рано или поздно можно наступить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 11:06 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Какой ещё 3тий параметр? Тот, что идёт сразу после первого и второго. Ты всерьёз полагаешь, что твой колбэк - единственный и будет вызван только когда ты ожидаешь?.. PS: И я уж не говорю о том, что вся система APC - застарелые хакерские трюки, к применению негодные. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 11:50 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Хм, а ты в курсе что такое вообще Alertable Wait State? В MSDN по этому поводу много буков исписано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 12:24 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Повторяю ещё раз, медленно: любой хук или колбэк, который ты установил в системе имеет право быть вызван когда угодно, кем угодно и по какому угодно поводу в любой момент после его установки. С какого перепою ты решил, что он может быть вызван исключительно в точке 2, я понятия не имею. И иметь не хочу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 12:32 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Очередь APC это не хук, и может обрабатываться только в строго в определённые моменты. Иначе ничего работать толком не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 13:28 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_, ты, чем рыдать, объясни лучше - что реально у тебя поломалось ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:34 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Я не могу использовать APC в потоке работающим с БД. Например таймеры через SetWaitableTimer с установленной CompletionRoutine ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:39 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_не могу использовать APC в потоке работающим с БД у тебя клиентская либа от какой версии и какой СУБД (Firebird, InterBase) ? В пределах одного коннекта вызовы IB/FB API не работают из разных потоков. Разве что в ФБ 2.5 (fbclient.dll) сделана блокировка вызовов, то есть, глючить не будет, но все равно две функции одновременно работать не будут (одна будет ждать завершения другой). Параллельно будут работать только два разных коннекта. p.s. редко какие библиотеки sql-серверов позволяют в пределах коннекта операции из разных тредов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:45 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Я не могу использовать APC в потоке работающим с БД. Например таймеры через SetWaitableTimer с установленной CompletionRoutineМожешь. Но почему-то для тебя проблема, если твой APC вызовется "внутри" вызова ISC API. Почему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:54 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Очередь APC это не хук, и может обрабатываться только в строго в определённые моменты. По названию, назначению и документации это Asynchronous Procedure Call. Из чего следует, что процедура вызовется тогда, когда система этого захочет. Смотри сюда: вызвав QueueUserAPC(), ты сказал системе "вызови на досуге эту процедуру в контексте этого потока с этим параметром". Всё. Ты не можешь и не должен строить никакие предположения о том когда у потока будет досуг. Точка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 15:05 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
kdvВ пределах одного коннекта вызовы IB/FB API не работают из разных потоков. Если предоставить внешнюю синхронизацию, то все работает. начиная с IB4. kdvРазве что в ФБ 2.5 (fbclient.dll) сделана блокировка вызовов, то есть, глючить не будет. В 2.5 она глючит. Для этого надо, конечно, немножко приложить усилия. Но факт остается фактом. О чем я сообщал Пешкову и Еманову. В переписке по поводу херни с сетевым пакетом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 15:23 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
kdvavp_не могу использовать APC в потоке работающим с БД у тебя клиентская либа от какой версии и какой СУБД (Firebird, InterBase) ? В пределах одного коннекта вызовы IB/FB API не работают из разных потоков. Разве что в ФБ 2.5 (fbclient.dll) сделана блокировка вызовов, то есть, глючить не будет, но все равно две функции одновременно работать не будут (одна будет ждать завершения другой). Параллельно будут работать только два разных коннекта. p.s. редко какие библиотеки sql-серверов позволяют в пределах коннекта операции из разных тредов. kdv, с APC можно работать и в однопоточном приложении. Это такой механизм Windows https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms681951(v=vs.85).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 14:12 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
hvladavp_Я не могу использовать APC в потоке работающим с БД. Например таймеры через SetWaitableTimer с установленной CompletionRoutineМожешь. Но почему-то для тебя проблема, если твой APC вызовется "внутри" вызова ISC API. Почему ? Контекст невалидный. Представь если бы TTimer->OnTimer в delphi срабатывал бы при работе с DataSet. Тут такая же картина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 14:14 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Контекст невалидный. Повторяю ещё раз, медленно: ты не можешь делать никаких предположений о времени вызова асинхронной процедуры. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 14:49 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_Контекст невалидный.Ну так это твои проблемы, как прикладного программиста. Система понятия не имеет о твоём контексте и о твоих требованиях к нему. Обеспечь :) Dimitry SibiryakovПовторяю ещё раз, медленно: ты не можешь делать никаких предположений о времени вызова асинхронной процедуры.++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 14:55 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
И все таки тема третьего параметра не раскрыта! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 15:08 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_hvladпропущено... Можешь. Но почему-то для тебя проблема, если твой APC вызовется "внутри" вызова ISC API. Почему ? Контекст невалидный. Представь если бы TTimer->OnTimer в delphi срабатывал бы при работе с DataSet. Тут такая же картина.А зачем TTimer'у в дельфи ставить в очередь APC? У него другие задачи. Зачем ты используешь WaitableTimer c процедурой завершения? Тут реально нельзя угадать, когда и в каком месте она будет вызвана. В apc очереди могут быть и другие процедуры, и вызываться они будут по очереди во время перехода потока в тревожное состояние. Таким образом твоя процедура завершения должна быть готова к этим обстоятельствам. Разве не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 15:13 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
APC вызываются только и исключительно из Alertable Wait State. Как вы думаете, зачем функцию SleepEx добавили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 12:49 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_APC вызываются только и исключительно из Alertable Wait State. А ты с какого-то похмелья почему-то считаешь, что у тебя есть эксклюзивная монополия на приведение потока в это состояние. Ню-ню... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 12:56 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Это обязано быть отображено в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 14:33 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
avp_, в документации на IB/FB API? Почему? Почему это вообще должно быть отражено в любой другой библиотеке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 14:54 |
|
||
|
IBAPI и APC
|
|||
|---|---|---|---|
|
#18+
Потому что это побочный эффект, который нарушает контракт с Win ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 15:06 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38911238&tid=1562960]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 428ms |

| 0 / 0 |
