diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-02 13:31:56 -0400 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-04 15:09:19 -0700 |
commit | 5c7867f435f9d94109ce11fcbbd153b016e02fe0 (patch) | |
tree | 5879bdf22b3f8d757c730378b0a2dc49a81fa15d /src/mbgl/util/work_request.cpp | |
parent | e476fcbf3be861b4b080d647fd7d7fa71570c86a (diff) | |
download | qtlocation-mapboxgl-5c7867f435f9d94109ce11fcbbd153b016e02fe0.tar.gz |
Join worker tasks before destroying TileData
Fixes #1309
Diffstat (limited to 'src/mbgl/util/work_request.cpp')
-rw-r--r-- | src/mbgl/util/work_request.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mbgl/util/work_request.cpp b/src/mbgl/util/work_request.cpp new file mode 100644 index 0000000000..05fe535802 --- /dev/null +++ b/src/mbgl/util/work_request.cpp @@ -0,0 +1,34 @@ +#include <mbgl/util/work_request.hpp> + +namespace mbgl { + +WorkRequest::WorkRequest() = default; + +WorkRequest::WorkRequest(Future&& future) + : complete(std::move(future)) { +} + +WorkRequest::WorkRequest(WorkRequest&& o) + : complete(std::move(o.complete)) { +} + +WorkRequest::~WorkRequest() { + if (complete.valid()) { + complete.get(); + } +} + +WorkRequest& WorkRequest::operator=(WorkRequest&& o) { + complete = std::move(o.complete); + return *this; +} + +WorkRequest::operator bool() const { + return complete.valid(); +} + +void WorkRequest::join() { + complete.get(); +} + +} |