pthread.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /** **************************************************************************
  2. * pthread.h
  3. *
  4. * Copyright 2008 Bryan Ischo <[email protected]>
  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 Lesser General Public License as published by the Free
  10. * Software 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 Lesser General Public License
  22. * version 3 along with libs3, in a file named COPYING. If not, see
  23. * <http://www.gnu.org/licenses/>.
  24. *
  25. ************************************************************************** **/
  26. #ifndef PTHREAD_H
  27. #define PTHREAD_H
  28. // This is a minimal implementation of pthreads on Windows, implementing just
  29. // the APIs needed by libs3
  30. unsigned long pthread_self();
  31. typedef struct
  32. {
  33. CRITICAL_SECTION criticalSection;
  34. } pthread_mutex_t;
  35. int pthread_mutex_init(pthread_mutex_t *mutex, void *);
  36. int pthread_mutex_lock(pthread_mutex_t *mutex);
  37. int pthread_mutex_unlock(pthread_mutex_t *mutex);
  38. int pthread_mutex_destroy(pthread_mutex_t *mutex);
  39. #endif /* PTHREAD_H */