diff --git a/src/modules/Mird/mird_glue.c b/src/modules/Mird/mird_glue.c index acff2066679b6e54131469722fcc1eb15fa2bdc3..d0b7fb574d97b9dc294cf3be72be5a607cb81e05 100644 --- a/src/modules/Mird/mird_glue.c +++ b/src/modules/Mird/mird_glue.c @@ -33,6 +33,21 @@ struct program *mird_scanner_program; #define TRY(X) \ do { MIRD_RES res; if ( (res=(X)) ) pmird_exception(res); } while (0) +#ifndef PIKE_THREADS + +#define LOCK(PMIRD) \ + do \ + { \ + struct pmird_storage *me=(PMIRD); \ + THREADS_ALLOW(); + +#define UNLOCK(PMIRD) \ + UNSET_ONERROR(err); \ + } \ + while (0); + +#else + #define LOCK(PMIRD) \ do \ { \ @@ -56,6 +71,8 @@ static void pmird_unlock(PIKE_MUTEX_T *mutex) mt_unlock(mutex); } +#endif + static void pmird_exception(MIRD_RES res) { char *s,*d;