better fix for provider.h

Signed-off-by: Daniel A. Steffen <das@apple.com>
diff --git a/src/internal.h b/src/internal.h
index 417ae20..84e33e3 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -732,18 +732,20 @@
 #endif // HAVE_SYS_GUARDED_H
 
 
-#if DISPATCH_PURE_C
-
 #if DISPATCH_USE_DTRACE || DISPATCH_USE_DTRACE_INTROSPECTION
 typedef struct dispatch_trace_timer_params_s {
 	int64_t deadline, interval, leeway;
 } *dispatch_trace_timer_params_t;
 
+#ifdef __cplusplus
+extern "C++" {
+#endif
 #include "provider.h"
+#ifdef __cplusplus
+}
+#endif
 #endif // DISPATCH_USE_DTRACE || DISPATCH_USE_DTRACE_INTROSPECTION
 
-#endif // DISPATCH_PURE_C
-
 #if __has_include(<sys/kdebug.h>)
 #include <sys/kdebug.h>
 #ifndef DBG_DISPATCH