1275970Scy/*
2275970Scy * ntp_workimpl.h - selects worker child implementation
3275970Scy */
4275970Scy#ifndef NTP_WORKIMPL_H
5275970Scy#define NTP_WORKIMPL_H
6275970Scy
7275970Scy/*
8275970Scy * Some systems do not support fork() and don't have an alternate
9275970Scy * threads implementation of ntp_intres.  Such systems are limited
10275970Scy * to using numeric IP addresses.
11275970Scy */
12275970Scy#if defined(SYS_WINNT)
13275970Scy# define WORK_THREAD
14275970Scy#elif defined(ISC_PLATFORM_USETHREADS) && \
15275970Scy      defined(HAVE_SEM_TIMEDWAIT) && \
16275970Scy      (defined(HAVE_GETCLOCK) || defined(HAVE_CLOCK_GETTIME))
17275970Scy# define WORK_THREAD
18275970Scy# define WORK_PIPE
19275970Scy#elif defined(VMS) || defined(SYS_VXWORKS)
20275970Scy  /* empty */
21275970Scy#elif defined(HAVE_WORKING_FORK)
22275970Scy# define WORK_FORK
23275970Scy# define WORK_PIPE
24275970Scy#endif
25275970Scy
26275970Scy#if defined(WORK_FORK) || defined(WORK_THREAD)
27275970Scy# define WORKER
28275970Scy#endif
29275970Scy
30275970Scy#endif	/* !NTP_WORKIMPL_H */
31