-#define CONS(obj) ((struct cons *)((obj)-LIST_POINTER_LOWTAG))
-#define SYMBOL(obj) ((struct symbol *)((obj)-OTHER_POINTER_LOWTAG))
-#define FDEFN(obj) ((struct fdefn *)((obj)-OTHER_POINTER_LOWTAG))
+#define QSHOW_BLOCK \
+ sigset_t oldset; \
+ thread_sigmask(SIG_BLOCK, &blockable_sigset, &oldset);
+#define QSHOW_UNBLOCK thread_sigmask(SIG_SETMASK,&oldset,0);
+#else
+#define QSHOW_BLOCK
+#define QSHOW_UNBLOCK
+#endif
+
+#ifdef LISP_FEATURE_SB_THREAD
+#define QSHOW_PREFIX fprintf(stderr, "%p ", pthread_self());
+#else
+#define QSHOW_PREFIX
+#endif
+
+#define FSHOW(args) \
+ do { \
+ QSHOW_BLOCK \
+ QSHOW_PREFIX \
+ fprintf args; \
+ QSHOW_UNBLOCK \
+ } while (0)
+#define SHOW(string) FSHOW((stderr, "/%s\n", string))
+
+#else
+
+#define FSHOW(args)
+#define SHOW(string)
+
+#endif
+
+#if QSHOW_SIGNALS
+#define FSHOW_SIGNAL FSHOW
+#else
+#define FSHOW_SIGNAL(args)
+#endif