Экономия параллелизма: неразрешенные внешние проблемы - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь обновить наш простой сервер до неблокирующего сервера. Для этого мне нужно было связать библиотеку thriftnb. В линковке nb lib исправлены нерешенные внешние ошибки, связанные с неблокирующим сервером; тем не менее, я все еще получаю неразрешенные внешние данные для фабрики потоков ... например ... posix или фабрики резьбы Boost. Я хотел бы предположить, что параллельный параллелизм также живет в nb lib (или в общем thrift lib). Насколько я могу судить, есть только две сберегательные библиотеки, так что мне не хватает?

Спасибо!

экономия 0,11 С ++ 11

1 Ответ

0 голосов
/ 31 октября 2018

Я до сих пор не уверен, почему отсутствуют фабрики потоков boost и posix, но StdThreadFactory работает. Для всех, кто заинтересован, это мой конфиг:

std::shared_ptr<apache::thrift::protocol::TProtocolFactory> protocolFactory(new apache::thrift::protocol::TBinaryProtocolFactory());
        std::shared_ptr<apache::thrift::transport::TProcessor> processor(new cimnetservicerefactor::CIMNetServiceRefactorProcessor(stdHandler));
        std::shared_ptr<apache::thrift::TProcessorFactory> processorFactory(new apache::thrift::TSingletonProcessorFactory(processor));
        std::shared_ptr<apache::thrift::transport::TNonblockingServerTransport> serverTransport(new LocalhostOnlyServerSocket(port, machineName, localConnectionsOnly));
        shared_ptr<apache::thrift::concurrency::StdThreadFactory> threadFactory = shared_ptr<apache::thrift::concurrency::StdThreadFactory>(new apache::thrift::concurrency::StdThreadFactory());
        threadManager->threadFactory(threadFactory);
        threadManager->start();
        apache::thrift::server::TNonblockingServer server(processorFactory, protocolFactory, serverTransport, threadManager);
...