#include <stdio.h>
#include <string.h>
+#include "sbcl.h"
#include "runtime.h"
#include "os.h"
-#include "sbcl.h"
#include "alloc.h"
#include "globals.h"
#include "gc.h"
{
lispobj *result=0;
struct thread *th=arch_os_get_current_thread();
+ /* FIXME: OOAO violation: see arch_pseudo_* */
SetSymbolValue(PSEUDO_ATOMIC_INTERRUPTED, make_fixnum(0),th);
SetSymbolValue(PSEUDO_ATOMIC_ATOMIC, make_fixnum(1),th);
result=alloc(bytes);
SetSymbolValue(PSEUDO_ATOMIC_ATOMIC, make_fixnum(0),th);
- if (SymbolValue(PSEUDO_ATOMIC_INTERRUPTED,th))
+ if (fixnum_value(SymbolValue(PSEUDO_ATOMIC_INTERRUPTED,th)))
/* even if we gc at this point, the new allocation will be
* protected from being moved, because result is on the c stack
* and points to it */