Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Существует ли модуль UDT для Boost.ASIO? 
:(
    Опции темы
phprus
Дата 2.8.2011, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



boostcoder
Спасибо за пример!

Ты случайно не знаешь, как выведено число 1024 в качестве размера для aligned_storage?
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 2.8.2011, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(phprus @  2.8.2011,  16:14 Найти цитируемый пост)
не знаешь, как выведено число 1024 в качестве размера для aligned_storage?

не знаю :(
я тоже задался этим вопросом, но все мои гугления ни к чему ни привели..
в общем, я в метод allocate() добавил вывод size и варнинга в логгер, в случае если запрашивается объем больше чем есть у аллокатора. но как показывает тест, у меня всегда выделяется 32 байта smile 
чтоб понять от чего зависит объем, нужно лезть в изучение boost::bind().
PM WWW   Вверх
boostcoder
Дата 2.8.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(boostcoder @  2.8.2011,  16:31 Найти цитируемый пост)
нужно лезть в изучение boost::bind().

хотя что-то мне подсказывает, что выделяемый объем будет равен "sizeof(declspec(boost::bind(...)))"...

Это сообщение отредактировал(а) boostcoder - 2.8.2011, 17:13
PM WWW   Вверх
boostcoder
Дата 2.8.2011, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



кстати, если некоторые хэндлеры гарантировано не выполняются одновременно, то для них можно использовать один аллокатор.
т.е. если на сокете происходит чтение одновременно с записью - то аллокаторов нужно два.
это очень критично. иначе получишь segfolt`ы и access_violation`ы о причинах которых будешь долго раздумывать smile 
PM WWW   Вверх
phprus
Дата 2.8.2011, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



Скажи пожалуйста, а если из одного хэндлера вызывается асинхронная операция с другим хэндлером (на одном сокете), то это считается одновременно?
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 2.8.2011, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(phprus @  2.8.2011,  20:42 Найти цитируемый пост)
то это считается одновременно?

если я тебя правильно понял, ты говоришь о такой ситуации:
Код

void start_read(...) {
   boost::bind(
      &this_type::on_read,
      this,
      ...
   );
}


void on_read(...) {
   boost::bind(
      &this_type::start_write,
      this,
      ...
   );
}

если да - то это не считается одновременно. ибо в доке сказано:
Цитата

The implementation guarantees that the deallocation will occur before the associated handler is invoked, which means the memory is ready to be reused for any new asynchronous operations started by the handler.

что и подтверждает вывод этого кода: http://liveworkspace.org/code/d8f9abec20e6...590d53f53f373a4
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0884 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.