tools/daemon/smud_threads.h
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 19:22:36 2009 -0500 (2009-02-25)
changeset 2603 fa286305bd3f
parent 2129 11d73bf97119
permissions -rw-r--r--
Allow for second private chat trigger (bug 3667, r,a11=pred).
pred@2129
     1
#ifndef _INCLUDE_SMUD_H_
pred@2129
     2
#define _INCLUDE_SMUD_H_
pred@2129
     3
pred@2129
     4
#include "smud.h"
pred@2129
     5
#include "smud_connections.h"
pred@2129
     6
pred@2129
     7
void *ThreadCallback(void *data);
pred@2129
     8
pred@2129
     9
class ThreadWorker
pred@2129
    10
{
pred@2129
    11
public:
pred@2129
    12
	ThreadWorker();
pred@2129
    13
	~ThreadWorker();
pred@2129
    14
public:
pred@2129
    15
	bool Start();
pred@2129
    16
	void CancelAndWait();
pred@2129
    17
	void AddConnection(int fd);
pred@2129
    18
	void Process();
pred@2129
    19
private:
pred@2129
    20
	ConnectionPool *m_pPool;
pred@2129
    21
	pthread_t m_Thread;
pred@2129
    22
	pthread_mutex_t m_NotifyLock;
pred@2129
    23
	pthread_cond_t m_Notify;
pred@2129
    24
	bool m_bShouldCancel;
pred@2129
    25
};
pred@2129
    26
pred@2129
    27
class ThreadPool
pred@2129
    28
{
pred@2129
    29
public:
pred@2129
    30
	ThreadPool();
pred@2129
    31
	~ThreadPool();
pred@2129
    32
public:
pred@2129
    33
	void AddConnection(int fd);
pred@2129
    34
	bool Start();
pred@2129
    35
	void Stop();
pred@2129
    36
private:
pred@2129
    37
	ThreadWorker *m_pWorker;
pred@2129
    38
};
pred@2129
    39
pred@2129
    40
#endif //_INCLUDE_SMUD_H_
pred@2129
    41