首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MonitoringManager::OnRequestSucceeded()中的assert(s_monitors)失败?

为什么MonitoringManager::OnRequestSucceeded()中的assert(s_monitors)失败?
EN

Stack Overflow用户
提问于 2019-01-21 12:31:50
回答 1查看 265关注 0票数 2

我把一个文件上传到S3。在请求之后,我就从MonitoringManager得到了一个异常,我不知道自己做错了什么。我们在应用程序中使用多个线程。

异常:断言失败。节目:..。Monitor...ger.cpp 55行表示: s_monitors

cpp文件:https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-core/source/monitoring/MonitoringManager.cpp第55行

代码语言:javascript
复制
uploadFileToS3(...);

方法‘upadFileToS3’:

代码语言:javascript
复制
bool result = false;

const Aws::SDKOptions options;
Aws::InitAPI(options);
{
    std::shared_ptr<Aws::Utils::Threading::Executor> m_executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>("TransferTests", 4);
    Aws::Transfer::TransferManagerConfiguration config(m_executor.get());
    config.s3Client = client;
    auto transmanager = Aws::Transfer::TransferManager::Create(config);

    std::shared_ptr<Aws::Transfer::TransferHandle> handle = transmanager->UploadFile(fileDestination, Aws::String(S3_BUCKET_NAME),
        Aws::String(s3key), Aws::String("multipart/form-data"), metadata);

    handle->WaitUntilFinished();

    result = isAwsActionSuccessful(handle) && boost::filesystem::remove(fileDestination);

}
Aws::ShutdownAPI(options);
return result;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 10:00:49

问题是我的应用程序使用了多个线程,因此API被初始化并多次关闭。当我仅在应用程序中执行API的初始化/关闭一次时,问题就得到了解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54290073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档