summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/greenlet/greenlet_thread_support.hpp
blob: 3ded7d2b730e79d15c95704491d7020cf58bb92f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef GREENLET_THREAD_SUPPORT_HPP
#define GREENLET_THREAD_SUPPORT_HPP

/**
 * Defines various utility functions to help greenlet integrate well
 * with threads. This used to be needed when we supported Python
 * 2.7 on Windows, which used a very old compiler. We wrote an
 * alternative implementation using Python APIs and POSIX or Windows
 * APIs, but that's no longer needed. So this file is a shadow of its
 * former self --- but may be needed in the future.
 */

#include <stdexcept>
#include <thread>
#include <mutex>

#include "greenlet_compiler_compat.hpp"

namespace greenlet {
    typedef std::mutex Mutex;
    typedef std::lock_guard<Mutex> LockGuard;
    class LockInitError : public std::runtime_error
    {
    public:
        LockInitError(const char* what) : std::runtime_error(what)
        {};
    };
};


#endif /* GREENLET_THREAD_SUPPORT_HPP */