Re[4]: [ann] act-o – библиотека асинхронного программировани
От: remark Россия http://www.1024cores.net/
Дата: 04.08.08 09:18
Оценка:
Здравствуйте, IROV.., Вы писали:

R>>Мне кажется именно в таком виде не получится сделать, т.к. сообщения типизированные. Соотв. не понятно что делать, если функция fooResponse принимает msg1_t, а функция foo_async отсылает в ответ msg2_t. Хотя, бесспорно, встроенная поддержка паттерна "запрос-ответ" очень приятна.


IRO>Именно в таком виде, мы организовали, получается очень и очень удобно и быстро писать асинхронный код. Вправде мы юзаем ICE как сетевое решение, сейчас на клиенте понадобилась асинхроная библиотечка, вот и хочется помочь развить данный проект.


Я не говорю, что это вообще не возможно. Я только сказал, что это не возможно в таком виде, в таком контексте. В таком контексте надо делать в каком-то другом виде.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: [ann] небольшой офтоп
От: alzt  
Дата: 04.08.08 11:19
Оценка:
Здравствуйте, Стэн, Вы писали:

Из ваших исходников (act_config.h):

// Директивы экспорта для сборки DLL
#    ifdef MULTI_EXPORT
#        define ACTO_API        __declspec( dllexport )
    #elif MULTI_IMPORT
#        define ACTO_API        __declspec( dllexport ) 
#    else
#        define ACTO_API
#    endif

Здесь нет ошибки?
Re[2]: [ann] небольшой офтоп
От: Стэн http://stanonwork.blogspot.com/
Дата: 04.08.08 15:04
Оценка:
Здравствуйте, alzt, Вы писали:

A>Здравствуйте, Стэн, Вы писали:

A>Из ваших исходников (act_config.h):
Спасибо, что обратили внимание, действительно должно быть по другому.
Признаюсь, что это сделано как заглушка, и в той версии не проверялось, что все будет правильно собираться и работать в виде dll-библиотеки.
Re[6]: [ann] act-o – библиотека асинхронного программировани
От: Стэн http://stanonwork.blogspot.com/
Дата: 04.08.08 19:42
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>>>ну например хочу создать acto обьект который гарантируемо будет процесится в главном потоке

С>>Понятно. Я эксперементировал с такой возможностью, но в текущей версии этого действительно нет. В ближайшие пару дней посмотрю, как это можно красиво в писать в существующий интерфейс.
IRO>Ждемс

Готов первый прототип. Пока чтобы пощупать, так как он еще не стабильный. Брать можно из svn, как именно читать здесь.

Нововведения следующие:

1. Добавился новый флаг acto::aoBindToThread. Работает только из потоков созданных пользователем самостоятельно, т.е. бесполезно вызывать внутри других объектов:
acto::actor_t console = acto::instance_t< Console >(acto::aoBindToThread);

2. Обработка сообщений объектов, привязанных к текущему потоку. Полезность вызова внутри acto-объекта аналогична п.1:
acto::process_messages();

3. Если есть желание использовать подобную функциональность не из главного потока, то вызвать в контексте желаемого потока:
acto::initialize_thread();
acto::finalize_thread();


Работающий пример в проекте ping-pong.
Re: [ann] act-o – библиотека асинхронного программирования
От: alzt  
Дата: 05.08.08 09:53
Оценка:
Здравствуйте, Стэн, Вы писали:

А каким образом можно проделать следующее:
Есть статическая функция. Необходимо сделать длинное действие. Функция должна подождать окончания этого действия (2 варианта — а. выполняя при этом некоторую свою работу, б. ничего не делая в этот момент, желательно не тратить ресурсы), после чего завершить работу.
?

Варианты с _getch() как-то не очень нравятся.
Re[2]: [ann] act-o – библиотека асинхронного программировани
От: Стэн http://stanonwork.blogspot.com/
Дата: 05.08.08 11:31
Оценка:
Здравствуйте, alzt, Вы писали:

A>Здравствуйте, Стэн, Вы писали:


A>А каким образом можно проделать следующее:

A>Есть статическая функция. Необходимо сделать длинное действие. Функция должна подождать окончания этого действия (2 варианта — а. выполняя при этом некоторую свою работу, б. ничего не делая в этот момент, желательно не тратить ресурсы), после чего завершить работу.
A>?

A>Варианты с _getch() как-то не очень нравятся.

Если вы имеете ввиду (как вариант) задачу о том, как дождаться завершения работы acto-объекта из основного потока, то это будет решено вместе с задачей обсуждаемой сейчас параллельно в этой теме (обработка сообщений из основного потока).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.