| 
							- diff --git a/api/apiplan.c b/api/apiplan.c
 - index b8642a9..c7df958 100644
 - --- a/api/apiplan.c
 - +++ b/api/apiplan.c
 - @@ -20,7 +20,50 @@
 -  
 -  #include "api/api.h"
 -  
 - -static planner_hook_t before_planner_hook = 0, after_planner_hook = 0;
 - +#if defined(__WIN32__) || defined(_WIN32) || defined(_WINDOWS)
 - +/* hack: windef.h defines INT for its own purposes and this causes
 - +   a conflict with our own INT in ifftw.h.  Divert the windows
 - +   definition into another name unlikely to cause a conflict */
 - +#define INT magnus_ab_INTegro_seclorum_nascitur_ordo
 - +#include <windows.h>
 - +#include <process.h>
 - +#include <intrin.h>
 - +#undef INT
 - +
 - +/* windows does not have statically-initialized mutexes---fake a
 - +   spinlock */
 - +static volatile LONG planner_mutex = 0;
 - +
 - +static void lock_planner_mutex(void)
 - +{
 - +     while (InterlockedExchange(&planner_mutex, 1) == 1) {
 - +          YieldProcessor();
 - +          Sleep(0);
 - +     }
 - +}
 - +
 - +static void unlock_planner_mutex(void)
 - +{
 - +     LONG old = InterlockedExchange(&planner_mutex, 0);
 - +     A(old == 1);
 - +}
 - +#else
 - +#include <pthread.h>
 - +
 - +static pthread_mutex_t planner_mutex = PTHREAD_MUTEX_INITIALIZER;
 - +
 - +static void lock_planner_mutex(void)
 - +{
 - +     pthread_mutex_lock(&planner_mutex);
 - +}
 - +
 - +static void unlock_planner_mutex(void)
 - +{
 - +     pthread_mutex_unlock(&planner_mutex);
 - +}
 - +#endif
 - +
 - +static planner_hook_t before_planner_hook = lock_planner_mutex, after_planner_hook = unlock_planner_mutex;
 -  
 -  void X(set_planner_hooks)(planner_hook_t before, planner_hook_t after)
 -  {
 
 
  |