Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename T> class thread_unique_resource {
- concurrent_queue<T> queue;
- public:
- struct Handle {
- Handle(thread_unique_resource* owner) {
- owner = ptr;
- }
- // Appropriate move constructors
- T t;
- thread_unique_resource* ptr;
- ~Handle() {
- ptr->queue->push(std::move(t));
- }
- }
- Handle get() {
- Handle ret;
- queue.try_pop(ret.t);
- return ret;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement