Здравствуйте, k732, Вы писали:
K>Тут вся проблемма в том, что данные помещаются в очередь несколькими писателями. Естественно синхронизировано.
K>Но в процессе этих действий читатель запрашивает данные для обработки. Тут синхронизация в самом методе сериализации (archive). Если я не буду подчищать очередь в просессе сериализации, то потом мне все равно нужно ее почистить т.к. она имеет ограничение по размеру, а отправленные данные мне больше не нужны. Если же я буду чистить очередь сразу, то отойду от принятой бустовской сигнатуры.
K>Разниза лишь в том, что в первом случае мне придется выполнять копирование, а после очистку, что может быть накладно, т.к. ограничена 50000 объектов, а во втором случа придется только очищать ее в процессе, что избавляет от копирования.
K>Это операция критична ко времени, поэтому тут делема.... Как лучше поступить ?
Я не совсем понял, очередь сериализуется и сериализованные данные отдаются читателям и очередь очишается?
В любом случае, надо исходить из эффективности и требований к реализации, так что сигнатуры методов в бусте не являются истинной в последней инстанции

. Еще как менее эффективный вариант, можно очищать очередь в синхронизированном блоке кода, сразу после сериализации.