pytorch/torch/lib/c10d/Store.hpp
Pieter Noordhuis f924fc6eb1 Make Store::setTimeout take milliseconds (#16278)
Summary:
This is particularly useful when using a c10d::Store from tests.

cc jgehring
Pull Request resolved: https://github.com/pytorch/pytorch/pull/16278

Reviewed By: janewangfb

Differential Revision: D13866271

Pulled By: pietern

fbshipit-source-id: c8670b5f4ebd5cd009f2cabbe46cc17a9237d775
2019-01-29 16:15:25 -08:00

45 lines
1022 B
C++

#pragma once
#include <chrono>
#include <cstdint>
#include <stdexcept>
#include <string>
#include <vector>
namespace c10d {
class Store {
public:
static constexpr std::chrono::milliseconds kDefaultTimeout =
std::chrono::seconds(300);
static constexpr std::chrono::milliseconds kNoTimeout =
std::chrono::milliseconds::zero();
Store() : timeout_(kDefaultTimeout) {}
virtual ~Store();
virtual void set(
const std::string& key,
const std::vector<uint8_t>& value) = 0;
virtual std::vector<uint8_t> get(const std::string& key) = 0;
virtual int64_t add(const std::string& key, int64_t value) = 0;
virtual bool check(const std::vector<std::string>& keys) = 0;
virtual void wait(const std::vector<std::string>& keys) = 0;
virtual void wait(
const std::vector<std::string>& keys,
const std::chrono::milliseconds& timeout) = 0;
void setTimeout(const std::chrono::milliseconds& timeout);
protected:
std::chrono::milliseconds timeout_;
};
} // namespace c10d