snmp_locking.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:1k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * snmp_locking.h - multi-thread resource locking support declarations 
  3.  */
  4. /*
  5.  * Author: Markku Laukkanen
  6.  * Created: 6-Sep-1999
  7.  * History:
  8.  *  8-Sep-1999 M. Slifcak method names changed;
  9.  *                        use array of resource locking structures.
  10.  *  3-Jan-2001 R. Story   copy mt_resource.h to snmp_locking.h
  11.  */
  12. #ifndef SNMP_LOCKING_H
  13. #define SNMP_LOCKING_H
  14. #ifdef __cplusplus
  15. extern          "C" {
  16. #endif
  17. #ifdef NS_REENTRANT
  18. #if HAVE_PTHREAD_H
  19. #include <pthread.h>
  20. typedef pthread_mutex_t mutex_type;
  21. #ifdef pthread_mutexattr_default
  22. #define MT_MUTEX_INIT_DEFAULT pthread_mutexattr_default
  23. #else
  24. #define MT_MUTEX_INIT_DEFAULT 0
  25. #endif
  26. #elif defined(WIN32) || defined(cygwin)
  27. #include <windows.h>
  28. typedef CRITICAL_SECTION mutex_type;
  29. #else
  30.                     error "There is no re-entrant support as defined."
  31. #endif  /*  HAVE_PTHREAD_H  */
  32. int netsnmp_mutex_init(mutex_type *);
  33. int     netsnmp_mutex_lock(mutex_type *);
  34. int     netsnmp_mutex_unlock(mutex_type *);
  35. int     netsnmp_mutex_destroy_mutex(mutex_type *);
  36. #else                           /* !NS_REENTRANT */
  37. #define netsnmp_mutex_init(x) do {} while (0)
  38. #define netsnmp_mutex_lock(x) do {} while (0)
  39. #define netsnmp_mutex_unlock(x) do {} while (0)
  40. #define netsnmp_mutex_destroy_mutex(x) do {} while (0)
  41. #endif                          /* !NS_REENTRANT */
  42. #ifdef __cplusplus
  43. }
  44. #endif
  45. #endif /*  SNMP_LOCKING_H  */