Обновить
12
0

Пользователь

Отправить сообщение

Баг в реализации SRWLock в Windows вешает многопоточные программы

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели2K

Реализация SRWLock (Slim Reader/Writer Lock) на Windows может привести к серьёзным проблемам: многопоточное приложение может зависнуть (deadlock).

При частой конкуренции многих потоков, удерживающих shared_lock, и хотя бы одного потока, пытающегося получить unique_lock, возможно возникновение ситуации, когда потоки оказываются в состоянии взаимного ожидания. Код выглядит абсолютно корректным, но приложение зависает внутри вызова в WinAPI.

Это касается любых многопоточных программ для Windows, которые явно либо неявно используют SRWLock для синхронизации. В том числе написанных на старых реализациях Rust, пока в Rust не заменили реализацию для Windows, отказавшись от SRWLock (GitHub Issue). В том числе написанных на C# (фикса пока нет) и т.д.

Читать далее

Бесплатный Cryptic Disk 4 с поддержкой TrueCrypt

Время на прочтение1 мин
Охват и читатели31K
Выпуск бесплатной версии Cryptic Disk Free — первый шаг навстречу пользователям.
Второй шаг — встроенная поддержка контейнеров умирающего TrueCrypt.
Ждём ещё один, последний шажок — открытые исходники.

image

Скачать бесплатную версию
История версий
Официальная новость

Skype 5.0 для Windows

Время на прочтение1 мин
Охват и читатели588

Вышла новая версия Skype 5.0.


Прошу заметить, что новую версию предлагают скачать пока не всем. Если у кого-то высвечивается 4.2, то надо переключить страницу на English (снизу).

Новость на официальном блоге здесь.

Отключаем Supernode в Skype

Время на прочтение1 мин
Охват и читатели47K
Как известно, Skype использует p2p сеть для обмена данными. Если у Вас достаточно мощный компьютер, то Skype может решить сделать Вас Супернодом и, как следствие, скайп-трафик других участников сети будет идти через Вас.
Начиная с версии 3.0 программы, появилась возможность отключить такую «фичу», что бы чужой трафик скайпа не шёл через Вас.
Для этого необходимо залезть в реестр и создать там ветку:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone]
"DisableSupernode"=dword:00000001

После перезагрузки системы новая настройка вступит в силу.
Для удобства можете использовать .reg-файл, который сам добавит необходимые параметры в реестр.

Дополнительная информация:
1. Guide for Network Administrator’s (.pdf) — подробное описание этой и некоторых других настроек реестра для скайпа.
2. Шаблон групповой политики (.adm), который позволяет более гибко настраивать параметры скайпа.
3. Отключение Supernode в MacOS-версии

nginx и непонятные цифры перед

Время на прочтение1 мин
Охват и читатели1.3K
После установки nginx в качестве frontend к apache встретился проблемой: в начале некоторых html-документов вставлялось шестнадцатеричное число, а в конце- ноль. Проблема проявлялась только на страницах с ошибками CMS Drupal.
По сути эти документы не что иное, как chuncked-ответы сервера. После недолгого разбирательства выяснил, что такая проблема встречается из-за кривого php-кода. На HTTP/1.0 запрос, php-код отдавал HTTP/1.1 ответ. Лезть в друпаловский код не хотелось, потому я решил немного поднастроить apache (2.2). В httpd.conf добавил следующие строки:

<IfModule setenvif_module>
BrowserMatch ".*" downgrade-1.0 force-response-1.0
</IfModule>


После чего, естественно, перезапустил apache.

По сути, я точно не знаю что значат эти настройки, но предполагаю, что теперь браузеры для моего сайта будут юзать исключительно HTTP/1.0 протокол. Тщательно проверив работоспособность сайта, убедился, что всё работает хорошо, и успокоился :)

UPD: Виноватых в произошедшем на самом деле определить очень сложно. Но для меня важно то, что описанная выше настройка апача полностью решает проблему.

Информация

В рейтинге
Не участвует
Откуда
Новая Зеландия
Зарегистрирован
Активность