blob: a2f650baea355233e9ecffed77f64892db528489 (
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
|
class CommandMutex : public Thread
{
public:
// Mutex used by this command to allow the core to drop and pick up processing of it at will
Mutex mutex;
// Set to true when this thread is processing data that is not thread safe (eg, the command)
bool processing;
CommandSource source;
Command *command;
std::vector<Anope::string> params;
CommandMutex(CommandSource &s, Command *c, const std::vector<Anope::string> &p) : Thread(), processing(true), source(s), command(c), params(p) { }
~CommandMutex() { }
virtual void Run() = 0;
virtual void Lock() = 0;
virtual void Unlock() = 0;
};
class AsynchCommandsService : public Service
{
public:
AsynchCommandsService(Module *o, const Anope::string &n) : Service(o, n) { }
virtual CommandMutex *CurrentCommand() = 0;
};
|