1 /*_############################################################################
6 _## -----------------------------------------------
7 _## Copyright (c) 2001-2010 Jochen Katz, Frank Fock
9 _## This software is based on SNMP++2.6 from Hewlett Packard:
11 _## Copyright (c) 1996
12 _## Hewlett-Packard Company
14 _## ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
15 _## Permission to use, copy, modify, distribute and/or sell this software
16 _## and/or its documentation is hereby granted without fee. User agrees
17 _## to display the above copyright notice and this license notice in all
18 _## copies of the software and any documentation of the software. User
19 _## agrees to assume all liability for the use of the software;
20 _## Hewlett-Packard and Jochen Katz make no representations about the
21 _## suitability of this software for any purpose. It is provided
22 _## "AS-IS" without warranty of any kind, either express or implied. User
23 _## hereby grants a royalty-free license to any and all derivatives based
24 _## upon this software code base.
26 _## Stuttgart, Germany, Thu Sep 2 00:07:47 CEST 2010
28 _##########################################################################*/
29 // $Id: reentrant.h 307 2007-09-14 20:01:45Z katz $
34 #include "snmp_pp/config_snmp_pp.h"
35 #include "snmp_pp/smi.h"
40 #elif defined (CPU) && CPU == PPC603
47 #ifdef SNMP_PP_NAMESPACE
51 class DLLOPT SnmpSynchronized {
55 virtual ~SnmpSynchronized();
58 CRITICAL_SECTION _mutex;
59 #elif defined (CPU) && CPU == PPC603
62 pthread_mutex_t _mutex;
69 class DLLOPT SnmpSynchronize {
72 SnmpSynchronize(SnmpSynchronized& sync) : s(sync) { s.lock(); };
73 ~SnmpSynchronize() { s.unlock(); }
80 #define REENTRANT(x) { SnmpSynchronize _synchronize(*this); x }
82 #ifdef SNMP_PP_NAMESPACE
83 } // end of namespace Snmp_pp