using tree index
[csql.git] / include / Mutex.h
blob452121f758e1d76616ff0da292455bd4d89add64
1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 ***************************************************************************/
16 #ifndef MUTEX_H
17 #define MUTEX_H
18 #include<os.h>
19 #if defined(sparc)
20 typedef unsigned char Lock;
21 #elif defined (i686)
22 typedef unsigned int Lock;
23 #endif
24 class Mutex
27 #if defined(sparc) || defined(i686)
28 Lock lock;
29 #else
30 pthread_mutex_t mutex_;
31 #endif
32 public:
33 char name[20];
34 Mutex();
35 int init();
36 int init(char *name);
37 int tryLock(int tries=0, int waitmsecs=0);
38 int getLock(int procSlot, bool procAccount=true);
39 int releaseLock(int procSlot, bool procAccount=true);
40 int destroy();
41 int recoverMutex();
44 #endif