674a62a4dc68145a6f0ff37390a991843409d717
[bluesky.git] / libs3-1.4 / inc / mingw / pthread.h
1 /** **************************************************************************
2  * pthread.h
3  * 
4  * Copyright 2008 Bryan Ischo <bryan@ischo.com>
5  * 
6  * This file is part of libs3.
7  * 
8  * libs3 is free software: you can redistribute it and/or modify it under the
9  * terms of the GNU General Public License as published by the Free Software
10  * Foundation, version 3 of the License.
11  *
12  * In addition, as a special exception, the copyright holders give
13  * permission to link the code of this library and its programs with the
14  * OpenSSL library, and distribute linked combinations including the two.
15  *
16  * libs3 is distributed in the hope that it will be useful, but WITHOUT ANY
17  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
19  * details.
20  *
21  * You should have received a copy of the GNU General Public License version 3
22  * along with libs3, in a file named COPYING.  If not, see
23  * <http://www.gnu.org/licenses/>.
24  *
25  ************************************************************************** **/
26
27 #ifndef PTHREAD_H
28 #define PTHREAD_H
29
30 // This is a minimal implementation of pthreads on Windows, implementing just
31 // the APIs needed by libs3
32
33 unsigned long pthread_self();
34
35 typedef struct
36 {
37     CRITICAL_SECTION criticalSection;
38 } pthread_mutex_t;
39
40 int pthread_mutex_init(pthread_mutex_t *mutex, void *);
41 int pthread_mutex_lock(pthread_mutex_t *mutex);
42 int pthread_mutex_unlock(pthread_mutex_t *mutex);
43 int pthread_mutex_destroy(pthread_mutex_t *mutex);
44
45 #endif /* PTHREAD_H */