Всем привет! Давно не было сообщений в блоге, но программа FlylinkDC++ еще жива и в обновлении на beta-канале у нее появилась возможность искать и ставить на закачку файлы с треккеров (рис 1)
FlylinkDC++ при закачке файла с большого кол-ва источников (10-50 ) начинает активно пожирать CPU на ожиданиях в критической секции объекта SharedFileHandle. Это происходит т.к. несколько ниток пытаются писать на диск (файл .dctmp) полученные из сети блоки а т.к. запись синхронная, то пока пишет один поток - другие крутятся в ожидании. Попробовал перевести эту часть на Memory-Mapped Files - блоки асинхронно сбрасывается на диск не вешая в ожидания соседние потоки. Просьба активных пользователей протестировать новую бетку (build-19853 или выше ) и отписать о результатах. Пока эта функция включается автоматически, при условии что размер файла не выше 2 гиг полезный. График загрузки CPU и ожиданий при закачке тествого файла размером 1.5 гиг 1. До изменений:
Вчера починил ошибку при которой флайлинк всегда при старте писал себя в ветку реестра для перехвата magnet-сылок HKEY_CURRENT_USER, _T("SOFTWARE\\Classes\\magnet\\shell\\open\\command") подобная активность не нравилась некоторым антивирусам: