nesco писал(а):
По-хорошему, надо было список мьютексов сделать, которые будут синхронизировать разные потокиАФИГЕТЬ

Нет слов. Одни мысли... И все - нецензурные. RTFM
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): По-хорошему, надо было список мьютексов сделать, которые будут синхронизировать разные потокиАФИГЕТЬ ![]() Нет слов. Одни мысли... И все - нецензурные. RTFM |
|||
карма: 9 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Galkov писал(а): Нет слов. Одни мысли... И все - нецензурныену ты бы конструктивно описал -- в чем проблема-то, а то сразу "Афигеть". А это меня маразм ночной посетил, да и не обдумывал я его толком ------------ Дoбавленo в 09.41: Да, а что такое RTFM, не в курсе я ![]() |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
nesco писал(а): Да, а что такое RTFM, не в курсе яgoogle в помощь ![]() |
|||
карма: 1 |
|
Ответов: 373
Рейтинг: 108
|
|||
nesco,
Ну это ты зря. Не стоило делать меньше 10
--------------------- Минимальные тайминги "Angry IP Scanner 2.20" Timer delay: 5ms Max threads: 1000 Ping timeout: 500ms Ping count: 1 ByteCount=? --------------------- Сделал такие же кроме Timer delay WaitObject=10ms, потоки=1ms, ByteCount=1. Сканирует ~ в 2-4 раза быстрей и процессор в 2-3 раза меньше напрягает. - Может есть какое нибудь сообщение окну (WM_...), что-бы процесс освобождал не используюмую память ![]() ----\\\\\\\\\\\ мда...у меня же WaitObject привязан к Events. Значит задержка 1ms. но если поток=10ms всё равно быстрее. |
|||
карма: 0 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
tsdima писал(а): google в помощьПонятно, что это такое. Ну почитал я Маркса, то бишь Рихтера, он там замутил сюжет с клиент-серверными потоками. В принципе, структура понятна, только -- во то надо ли оно нам, такие навороты ![]() Хотя, может и надо подумать над реализацией ![]() |
|||
карма: 22 |
|
Ответов: 373
Рейтинг: 108
|
|||
nesco,
объясни вразумительно, зачем вот такая связка, если ты ее поставил Наверное это что-то вроде пула потков ![]() |
|||
карма: 0 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Vlad.- писал(а): это что-то вроде пула потковМдаа... Уж |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Vlad.- писал(а): здесь всё верно?Нет Но это уже не особенно и важно. Отъедание памяти - обыкновенное дело, как мне кажется. Если внутри кодов doPing позволять себе GetMem, и выходы мимо FreeMem... Элементы палитры, связанные с интернетом, я не трогал... Поскольку это как раз тот вопрос, в котором я не очень разбираюсь. 2nesco под Чтением, не имелось в виду нахождение знакомых буковок в тексте (я очень сильно пытаюсь употреблять только цензурные слова) Защита ресурса осуществляется примерно так code_13929.txt Таких процессов или потоков (каждый со своими "командами") можно запускать хоть десятки, и они не будут мешать друг-другу. И для защиты нужны лишь 3 строчки кода в методе doSafeWork. И все. И не нужно больше ничего. И про потоки вообще никто не вспоминал в коде. И каждому защищаемому ресурсу соответствует одно имя мьютекса. И все это в букварях прекрасно описано. И понятие мьютекса уже давно стало межплатформенным, характеризующим технологию синхронизации, а не конкретное winAPI. Уже и в Wiki попало даже. И эти 3 строчки кода - это то, зачем он и придумывался. Все. Цензурные слова кончились. |
|||
карма: 9 |
| ||
файлы: 1 | code_13929.txt [2.9KB] [322] |
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Galkov писал(а): Если внутри кодов doPing позволять себе GetMem, и выходы мимо FreeMem...Нашел уже и исправил. |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov писал(а): Если внутри кодов doPing позволять себе GetMem, и выходы мимо FreeMem... и при этом делать WSAStartup и не делать WSACleanup. |
|||
карма: 1 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Galkov писал(а): Защита ресурса осуществляется примерно такИ где ты раньше был ![]() ------------ Дoбавленo в 15.55: tsdima писал(а): ... и при этом делать WSAStartup и не делать WSACleanupЭто означает, что WSACleanup надо добавить в секцию FINALLY, правильно я понял ![]() |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Имел счастье наблюдать новый элемент SafeMode
И это было бы очень смешно, если бы не было так грустно В чем отличия от вышеприведенного IC ![]() Обидно за Проект, однако... Если в нем остались только такие developer-ы ![]() |
|||
карма: 9 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Galkov писал(а): Введено св-во Delay (почему не TimeOut - тайна сия велика есть), которое к тому же и НЕ работаетЛучше читай литературу, тогда ясно будет И оставь свои мнения при себе. Умник, млин... |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Galkov писал(а): Введено св-во Delay (почему не TimeOut - тайна сия велика есть), которое к тому же и НЕ работаеттут вообще-то надо убирать все циклы и делаи и давать пользователю событие onWaitFailed (это когда результат не равен WAIT_OBJECT_0) Galkov писал(а): Имя мьютекса дополнено PID-ом.да, это лишнее Galkov писал(а): Конструирование мьютекса сделано отложенным. Зачем-то. Наверное только для того, чтобы продемонстрировать свое знание сей продвинутой техники.затем, что на момент Create не доступно _prop_Name => пришлось бы вставлять property на имя => с точки зрения кода реализация получилась бы гораздо навороченнее по объему кода, но зато быстрее на одну команду процессора при вызове doSafeMode. Поэтому притензия тут не уместна совершенно. в обоих реализациях отсутствует вызов унаследованного деструктора - это надо исправить. |
|||
карма: 27 |
|
Разработчик
Ответов: 26304
Рейтинг: 2146
|
|||
Dilma писал(а): тут вообще-то надо убирать все циклы и делаи и давать пользователю событие onWaitFailed (это когда результат не равен WAIT_OBJECT_0)Возник вопрос -- почему я вставил именно такой цикл, а не сделал INFINITY ожидание, как в IC Galkova, а только потому, INFINITY оказался не бесконечный цикл в мультипроцессорных системах (проверено именно сначала на IC). Те, после определенного времени WaitForSingleObject вываливался, освобождая доступ к данным, откуда я и поставил проверку на WAIT_OBJECT_0. И претензий к _prop_Delay я тоже не понял, поставь -1 и будет тебе INFINITY Хорошо, как предполагается конкретная реализация данного метода ![]() Dilma писал(а): да, это лишнееТут я посчитал, что не желательно влезать в чужой поток копии приложения, а защитить только текущий. Если очень необходимо убрать, то никаких проблем это вызвать не должно, кроме вышеперечисленной. |
|||
карма: 22 |
|